我有一个类似这样的配置单元查询
SELECT
a.uid,
a.order_id
FROM table_a a
FULL OUTER JOIN
(
SELECT
uid,
order_id
FROM table_b
) b
ON (a.uid = b.uid AND a.order_id = b.order_id)
此查询产生一组uid和order_id。
现在,我有一个black_listed
表,其中包含一组uid。我希望这组列入黑名单的uid不会成为最终结果的一部分。
有没有办法将这个remove-blacklisted-uids子查询添加到上述查询中(在单个查询中执行此操作)
因此,如果我有一个名为black_list
和uid1
和uid2
的表,则这两个uid都不应该是我第一次查询的最终结果的一部分。
答案 0 :(得分:1)
这可以通过left join
完成。
SELECT
a.uid,
a.order_id
FROM table_a a
FULL OUTER JOIN
(
SELECT
uid,
order_id
FROM table_b
) b
ON (a.uid = b.uid AND a.order_id = b.order_id)
LEFT JOIN black_listed bl on bl.id = a.uid
WHERE bl.id IS NULL