-3

我有 2 个表,其中大约 80% 的主键是相同的。我该如何选择:

  • 表 A 中其他表中没有主键的所有行(例如,行的主键为 432,但表 B 中没有 432 - 所以我们要选择它)

  • 当两个表的主键都为例如 784 时,来自任一表的所有行。

4

5 回答 5

3

您可以使用LEFT JOIN

尝试这样的事情

SELECT * FROM
table_A a LEFT JOIN table_b b on b.id=a.id
WHERE b.id IS NULL
于 2012-07-11T06:12:11.007 回答
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)
于 2012-07-11T06:09:53.300 回答
0

假设它们具有相同的架构,您可以将 MINUS 用于第一个 INTERSECT 用于第二个

于 2012-07-11T06:09:49.467 回答
0

对于在 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
于 2012-07-11T06:11:21.850 回答
0
Select * 
from yourTable a
left join yourNextTable b 
on a.ID = b.ID
where b.ID is null
于 2012-07-11T06:12:33.520 回答