2012-08-06 40 views
0

这里是我的两个表feedstraders。现在我想从两个表中选择feed_idfeeds表不在的traders表中的行。这里是两个表的结构。加入表格以获得空值结果

订阅

enter image description here

贸易商

enter image description here

这是我使用的连接查询。

SELECT * FROM feeds LEFT JOIN traders ON feeds.feed_id = traders.trdr_feed_id

这是我得到的输出。我需要的是,只有空值的行。但请注意,具有空值的列应保留为空值。

enter image description here

任何帮助将不胜感激。

回答

1

试试这个没有JOIN

SELECT Feed_ID 
FROM Feeds 
WHERE Feed_ID NOT IN 
     (
      SELECT trdr_feed_id 
      FROM Traders 
     ) 

或本:

SELECT * 
FROM Feeds a 
      LEFT JOIN Traders b 
       ON a.Feed_ID = b.trdr_feed_id 
WHERE a.trdr_id IS NULL 
1

我认为这是你在找什么:

SELECT * 
FROM feeds 
    LEFT JOIN traders 
     ON IFNULL(feeds.feed_id, 0) = IFNULL(traders.trdr_feed_id, 0) 
WHERE traders.trdr_feed_id IS NULL; 
1
SELECT * FROM feeds 
LEFT JOIN traders 
ON feeds.feed_id = traders.trdr_feed_id  
WHERE trdr_id IS NULL