很抱歉,如果我的问题是愚蠢的或基本的。我试图从db中不存在id记录。但它显示了所有记录。
---------------------+
id | name | age |
---------------------+
1 | ase | 33 |
3 | ase | 33 |
4 | ase | 33 |
5 | ase | 33 |
7 | ase | 33 |
9 | ase | 33 |
---------------------+
我试过这样的事情
SELECT * FROM tablename WHERE id NO IN('1','2','4','5','6','7')但显示所有记录。在这个给定的查询中,表格中不存在id 2,6我需要将它们显示为结果。请有人帮我解决这个问题。感谢
期待输出
----------------------+
id not exist in table |
----------------------+
2 |
6 |
----------------------+
从给定的IN语句中,这个ID在TABLE中不存在。我需要显示表中不存在的id。
答案 0 :(得分:2)
您需要使用(派生的)值表。以下是使用left join
代替not in
的解决方案:
select n.n
from (select 1 as n union all select 2 union all select 4 union all select 5 union all
select 6 union all select 7
) n left join
tablename t
on t.id = n.n
where t.id is null;