Sql 如何选择不在my b表中的记录
我有一个表A有100k记录,另一个表B有500k记录。B应该有A的所有100k记录,两个表中都有一个键。如何编写查询以查找a中存在的B中缺少的记录。它不应列出a中没有的所有其他400k记录。如果您关心所有列,则可以使用除之外的Sql 如何选择不在my b表中的记录,sql,postgresql,Sql,Postgresql,我有一个表A有100k记录,另一个表B有500k记录。B应该有A的所有100k记录,两个表中都有一个键。如何编写查询以查找a中存在的B中缺少的记录。它不应列出a中没有的所有其他400k记录。如果您关心所有列,则可以使用除之外的: select a.* from a except select b.* from b; 这假设表中的列完全相同,具有兼容的类型,并且以相同的顺序定义。通常最好显式列出列。听起来您可以通过比较键/id来完成。因此,您可以使用反左连接、不存在、在或除。这里有一种方法应该适
:
select a.*
from a
except
select b.*
from b;
这假设表中的列完全相同,具有兼容的类型,并且以相同的顺序定义。通常最好显式列出列。听起来您可以通过比较键/id来完成。因此,您可以使用反左连接、不存在、在或除。这里有一种方法应该适合你
SELECT *
FROM
TableA a
WHERE
NOT EXISTS(SELECT 1 FROM TableB b WHERE a.Id = b.Id)
这应该可以做到
select * from a
left join b on b.id = a.id
where b.id is null
编辑你的问题,提供样本数据和期望的结果。你说的“如果可以”是什么意思?