如何从表SQL中获取不存在的记录?

时间:2016-05-05 01:56:36

标签: mysql sql

很抱歉,如果我的问题是愚蠢的或基本的。我试图从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。

1 个答案:

答案 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;