如何从表中选择所有数据但如果它等于其他表的数据则删除值

时间:2012-10-02 17:01:36

标签: mysql sql select

如何编写用于从第二个表中没有相应记录的表中选择记录的SQL语句。

示例:有两个表ab

a (id, first, second, third)
b (id, whatever)

我应该从表a中选择所有数据,而不记录a.id = b.id的记录。不应该选择该记录。

3 个答案:

答案 0 :(得分:2)

SELECT * FROM a WHERE id NOT IN (SELECT id FROM b)

答案 1 :(得分:2)

使用EXISTS子查询:

SELECT *
FROM a
WHERE NOT EXISTS (SELECT 1 FROM b WHERE b.id=a.id)

没有子查询:

SELECT *
FROM a
LEFT JOIN b ON b.id=a.id
WHERE b.id is null
GROUP BY a.id

答案 2 :(得分:0)

select * from a where a.id not in (select distinct id from b)