mysql - 我试图从 LEFT JOIN 中只获取一行

标签 mysql sql join left-join

临时订购表

temp_id     series_id   news_ticket_breakdown_id    quantity    expiry_time
58db09bba25b4   2                  2                     2       1490750973
58db09bba25b4   2                  4                     1      1490750973

新闻项目表

news_id   series_id      news_title
   26          2         GENERIC TICKETING
   27          2         GENERIC TICKETING

当我对 series_id 执行左连接时,我返回 4 行,但我只想要 2 行。我不确定如何将连接的行数限制为一行。

当前查询

SELECT 
    * 
FROM 
    ticket_ordering_temp    
LEFT JOIN 
    news_items 
on 
    ( news_items.series_id = SELECT 
                                DISTINCT(event_id)
                             FROM 
                                news_items 
                             where 
                                series_id=ticket_ordering_temp.series_id
    )
where 
    temp_id='58db09bba25b4''

期望的结果 我只需要表 2 中的 1 行,而不是如上所述连接的 2 行

temp_id     series_id   news_ticket_breakdown_id    quantity    expiry_time news_title
58db09bba25b4   2                  2                     2       1490750973  GENERIC TICKETING
58db09bba25b4   2                  4                     1      1490750973 GENERIC TICKETING

最佳答案

对于您的示例数据和您想要的结果,您可以尝试以下sql来执行:

SELECT 
    ticket_ordering_temp.*, t.news_title
FROM 
    ticket_ordering_temp    
LEFT JOIN( 
    SELECT DISTINCT series_id, news_title
    FROM news_items
) t ON ticket_ordering_temp.series_id = t.series_id
WHERE temp_id = '58db09bba25b4'

但是,我认为您应该告诉我们这些示例数据背后的逻辑。

Demo in SqlFiddle

关于mysql - 我试图从 LEFT JOIN 中只获取一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43082654/

相关文章:

php - 基于一行中所有字段值的脚本

php - 自动将mysql错误和其他错误发送到日志文件的方法?

mysql - Left Outer Join (MySQL) 问题,这个查询有什么问题?

mysql - 特定表中特定列的查询计数 JOIN 其他表具有相同的列?

PHP - 提交数据枚举组合按钮

MySQL 查询一个查询并根据第一个查询和 COUNT 的 WHERE 语句返回 COUNT

c# - 在简单类型的集合上创建条件

sql - 如何禁用mysql的匹配查询的50%排除

SQL : The name false is not permitted in this context

java - Hibernate/JPA 单向 OneToMany 与源表中常量值的连接条件