Mysql Select语句查找不在表中的记录

时间:2013-12-10 00:41:58

标签: mysql

我有一张表A,其中我有以下5条记录

ID
---
1
2
3
4
5

我需要一个能够返回表中未找到的记录的查询,其内容如下:

select ID from A where ID in (1,2,3,4,5,6)

我希望看到ID 6返回,表中找不到ID为6。

ID
---
6

1 个答案:

答案 0 :(得分:0)

最简单的方法是将要查找的值存储在表中(可能是临时表),然后将这些表连接起来:

create temporary table temp_values (
    val int not null,
    index idx_val(val)
);
insert into temp_values (val) values (1), (2), (3), (4), (5), (6);

select 
    t.val
from 
    temp_values as t
    left join yourTable as a on t.val = a.id
where 
    a.id is null;

希望这有帮助。