【发布时间】:2017-11-03 02:31:08
【问题描述】:
我想编写一个查询来获取记录表 A 中的记录,而不是表 B 中的记录。根据我当前的应用程序设计,如果记录存在于 A 中,那么它也应该存在于表 B 中。但由于一些接口问题,并非表 A 的所有记录都存在于表 B。现在我想要所有那些在 A 中但不在 B 中的记录。我怎样才能获取这些记录?任何帮助表示赞赏。 TIA。
【问题讨论】:
我想编写一个查询来获取记录表 A 中的记录,而不是表 B 中的记录。根据我当前的应用程序设计,如果记录存在于 A 中,那么它也应该存在于表 B 中。但由于一些接口问题,并非表 A 的所有记录都存在于表 B。现在我想要所有那些在 A 中但不在 B 中的记录。我怎样才能获取这些记录?任何帮助表示赞赏。 TIA。
【问题讨论】:
您可以使用NOT EXISTS,例如:
SELECT *
FROM tableA a
WHERE NOT EXISTS (
SELECT * FROM tableB b WHERE b.a_id = a.id
);
【讨论】:
UNION,例如SELECT * FROM (SELECT * FROM A1 UNION SELECT * FROM A2 ) a WHERE NOT EXISTS (*uion query for B tables*).