我有2个表,其中大约80%的主键是相同的。我该如何选择:
表A中的所有行,其他表中没有主键(例如,行的主键为432,但表B中没有432 - 所以我们要选择它)
< / LI>当存在例如主键时,来自任一表的所有行两者都是784。
答案 0 :(得分:3)
您可以使用LEFT JOIN
尝试类似这样的事情
SELECT * FROM
table_A a LEFT JOIN table_b b on b.id=a.id
WHERE b.id IS NULL
答案 1 :(得分:1)
选择常见记录:
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)
答案 2 :(得分:0)
假设他们可以使用相同的架构 第一个减去 INTERSECT为第二个
答案 3 :(得分:0)
对于在tableA中查找没有tableB中的行的行的情况,可以在加入后指定WHERE tableB.id IS NOT NULL:
SELECT tableA.*
FROM tableA LEFT JOIN tableB ON tableA.id = tableB.id
WHERE tableB.id IS NULL
答案 4 :(得分:0)
Select *
from yourTable a
left join yourNextTable b
on a.ID = b.ID
where b.ID is null