我有一个遵循此模式的查询:
SELECT * FROM
(
SELECT a
FROM b
) `firstQuery`
UNION
SELECT * FROM
(
SELECT b
FROM c
) `secondQuery`
但是我想secondQuery
从firstQuery
中排除行
SELECT * FROM
(
SELECT a
FROM b
) `firstQuery`
UNION
SELECT * FROM
(
SELECT b
FROM c
WHERE NOT EXISTS
(
SELECT * FROM `firstQuery`
)
) `secondQuery`
不起作用。 有人可以指出我正确的方向吗?如何重用子查询的结果?
答案 0 :(得分:1)
UNION已经从结果集中删除了重复项,因此您只能从“ secondquery”中获得“ firstquery”尚未返回的结果– @Aaron Dietz
亚伦说得很对。谢谢!