我有 2 个表,其中大约 80% 的主键是相同的。我该如何选择:
表 A 中其他表中没有主键的所有行(例如,行的主键为 432,但表 B 中没有 432 - 所以我们要选择它)
当两个表的主键都为例如 784 时,来自任一表的所有行。
您可以使用LEFT JOIN
尝试这样的事情
SELECT * FROM
table_A a LEFT JOIN table_b b on b.id=a.id
WHERE b.id IS NULL
选择常用记录:
Select * from TableA a
inner join TableB b on a.id = b.id
选择唯一的 tableA 记录:
Select * from tableA
where id not in (select id from TableB)
假设它们具有相同的架构,您可以将 MINUS 用于第一个 INTERSECT 用于第二个
对于在 tableA 中查找 tableB 中没有行的行的情况,您可以在 join 后指定 WHERE tableB.id IS NOT NULL:
SELECT tableA.*
FROM tableA LEFT JOIN tableB ON tableA.id = tableB.id
WHERE tableB.id IS NULL
Select *
from yourTable a
left join yourNextTable b
on a.ID = b.ID
where b.ID is null