SQL查询:抓住没有任何数字的那些

时间:2011-07-08 19:15:43

标签: sql

我有两张桌子

  1. 事件
  2. 相册
  3. 我想抓住表albums中没有任何条目的所有事件。

    我知道如何做到这一点来完成所有的事情:

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

    我怎样才能完全相反,所以它列出了所有在相册中的eID中没有ID的行?

2 个答案:

答案 0 :(得分:4)

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

您也可以LEFT JOIN并检查NULL,但EXISTS通常会更快地运行。

答案 1 :(得分: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