Sql 查询以输出不存在的数据
表A:Sql 查询以输出不存在的数据,sql,sql-server,database,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 这意味着,表A中的哪些ID不在表B中,使用而不是语句 试试这个:- Select id from TableA where id not in (Select id from TableB); 在语句中不使用 试试这个:- Se
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
这意味着,表A中的哪些ID不在表B中,使用
而不是语句
试试这个:-
Select id from TableA
where id not in (Select id from TableB);
在
语句中不使用
试试这个:-
Select id from TableA
where id not in (Select id from TableB);
您可以使用left join
,它将保留左侧的所有记录,并在右侧没有匹配记录时将它们与null
关联。
这样,您就可以将右侧的列过滤为null,以获得所需的结果
select t1.id
from tableA t1
left join
tableB t2
on t1.id = t2.id
where t2.id is null
您可以使用left join
,它将保留左侧的所有记录,并在右侧没有匹配记录时将它们与null
关联。
这样,您就可以将右侧的列过滤为null,以获得所需的结果
select t1.id
from tableA t1
left join
tableB t2
on t1.id = t2.id
where t2.id is null
使用除
运算符外的其他运算符:
select id from tableA
except
select id from tableB
使用除
运算符外的其他运算符:
select id from tableA
except
select id from tableB
WHERE子句中不存在Use
SELECT id FROM TableA A
WHERE NOT EXISTS(SELECT 1 FROM TableB B WHERE A.id = B.Id )
WHERE子句中不存在Use
SELECT id FROM TableA A
WHERE NOT EXISTS(SELECT 1 FROM TableB B WHERE A.id = B.Id )
您可以使用减号:
select * from tableA
minus
select * from tableB
您可以使用减号:
select * from tableA
minus
select * from tableB
减号是非标准的,仅在某些DBMS(Oracle、Teradata等)中可用。SQL Server使用标准的,除了
。减去
是非标准的,仅在某些DBMS(Oracle、Teradata等)中可用。SQL Server使用标准的,但
除外。