2011-07-08 23 views
1

我有兩個表SQL查詢:搶那些沒有任何數量

  1. 事件
  2. 專輯

我想抓住這並不在表中albums任何條目中的所有事件。

我知道該怎麼做才能讓所有有entrys:

SELECT id, title FROM events e 
INNER JOIN albums a ON (e.id = a.eID) 

我該怎麼做完全相反的,所以它列出所有不與他們的電子身份證在ID連續事件相冊?

回答

4
SELECT id, title 
FROM events e 
WHERE NOT EXISTS (SELECT NULL FROM albums a WHERE a.eid = e.id) 

LEFT JOIN並可以檢查NULL存在是正常運行更快。

+0

@gbn感謝編輯,我無法再讀取清晰。 – JNK

0

我傾向於使用這種方法:

select id, title 
from events 
where id not in (select id from albums) 

還有外連接方式:

select a.id, a.title 
from events a left outer join albums b on a.id = b.id 
where b.id is null 
+2

您需要爲您的'OUTER JOIN'添加一個'ON'子句... –

+0

'ON'後面應該有一個條件,而不是'id'。 –