查询输出不存在的数据

时间:2017-05-24 10:27:24

标签: sql sql-server database

表A:

   id   Name
    1   a
    2   b
    3   c
    4   d
    5   e

表B:

id  Name
3   c
4   d
5   e

此处,id是连接到表B的主键。

我需要这样的输出: -

id 
1
2

这意味着,表B中的哪些ID不在表B中

5 个答案:

答案 0 :(得分:3)

使用EXCEPT运算符:

select id from tableA
except
select id from tableB

答案 1 :(得分:1)

使用Not in声明。

试试这个: -

Select id from TableA
where id not in (Select id from TableB);

答案 2 :(得分:1)

您可以使用left join,如果右侧没有匹配的记录,则会保留左侧的所有记录并将其与null相关联。 这样,您可以在右侧列上过滤为null以获得所需的结果

select  t1.id
from    tableA t1
left join
        tableB t2
on      t1.id = t2.id
where   t2.id is null

答案 3 :(得分:1)

在WHERE子句中使用NOT EXISTS

  SELECT id FROM TableA A 
  WHERE NOT EXISTS(SELECT 1 FROM TableB B WHERE A.id = B.Id )

答案 4 :(得分:0)

您可以使用minus

select * from tableA 
minus 
select * from tableB