【问题标题】:SELECT a single record with JOIN用 JOIN 选择一条记录
【发布时间】:2012-08-07 04:13:13
【问题描述】:

我想从两个表中选择一条记录。但是如果你使用SIMPLE JOIN,它只会在条件同时满足表时返回值,当我们使用LEFTRIGHT JOIN时,它会返回LEFTRIGHT表中的所有值.

我正在使用以下查询,

SELECT * FROM activity_feeds LEFT OUTER JOIN activity_traders ON activity_feeds.feed_id = activity_traders.trdr_feed_id = '11'

只有当activity_feeds.feed_id = activity_traders.trdr_feed_id = '11' 并且值与右表不匹配时,我才需要从两个表中获取值,它应该为右表中的列返回空值。请帮忙!

编辑:添加表格结构

供稿

交易者

【问题讨论】:

    标签: mysql sql


    【解决方案1】:
    SELECT * FROM activity_feeds LEFT OUTER JOIN activity_traders ON activity_feeds.feed_id = 
    activity_traders.trdr_feed_id where activity_traders.trdr_feed_id  = '11'
    

    【讨论】:

    • 不,它没有用。您可以检查上面的表结构。
    • where 条件应该在第一个表的 feed id 上,因为我们是根据它进行选择的
    • 它有时会返回一个空集,因为activity_traders.trdr_feed_id 可能包含也可能不包含来自activity_feeds 的记录ID
    【解决方案2】:

    我假设所有记录都基于activity_feeds,无论feed_id 是否存在于activity_traders 表上,只要它将显示所有feed_id 的值为11。试试这个。

    SELECT * 
    FROM   activity_feeds a
               LEFT OUTER JOIN  activity_traders b
                    ON a.feed_id = b.trdr_feed_id 
    WHERE  a.feed_id = '11'
    

    【讨论】:

      【解决方案3】:
      ON activity_feeds.feed_id = activity_traders.trdr_feed_id 
      WHERE activity_traders.trdr_feed_id = '11'
      

      【讨论】:

        猜你喜欢
        • 2019-09-02
        • 2016-02-14
        • 2015-07-24
        • 1970-01-01
        • 2011-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-06
        相关资源
        最近更新 更多