如何从table_x中选择column_foo中表y的任何行中不存在的所有ID?
我正在努力用一个SQL查询来做这件事。
答案 0 :(得分:4)
SELECT id FROM x
WHERE NOT EXISTS (SELECT * FROM y WHERE foo = id)
或者
SELECT id FROM x
WHERE id NOT IN (SELECT foo FROM y)
如果y.foo
不是可以为空的列,您甚至可以这样做:
SELECT x.id FROM x
LEFT JOIN y ON x.id = y.foo
WHERE y.foo IS NULL
答案 1 :(得分:2)
也许你可以这样做:
SELECT id FROM table_x WHERE id NOT IN (SELECT column_foo FROM table_y);
答案 2 :(得分:1)
你会使用LEFT JOIN。这里有更多的解释和例子。
答案 3 :(得分:0)
如果可以的话,最好避免使用子查询。 INNER JOIN
只会返回符合加入条件的行。
SELECT DISTINCT
x.id
FROM
table_x x
INNER JOIN table_y y ON (x.id = y.id_column_in_y)