如何从表A中选择表B中不存在的行?

时间:2012-07-11 06:05:12

标签: php mysql

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

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

    < / LI>
  • 当存在例如主键时,来自任一表的所有行两者都是784。

5 个答案:

答案 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