Mysql 重用来自union的select的查询

Mysql 重用来自union的select的查询,mysql,sql,Mysql,Sql,我有一个遵循此模式的查询: SELECT * FROM ( SELECT a FROM b ) `firstQuery` UNION SELECT * FROM ( SELECT b FROM c ) `secondQuery` 但是,我希望secondQuery从firstQuery中排除行 不起作用。 有人能给我指出正确的方向吗?如何重用子查询的结果 UNION已经从结果集中删除了重复项,因此您只能从“secondquery”中获得“fi

我有一个遵循此模式的查询:

SELECT * FROM
(
    SELECT  a
    FROM    b
) `firstQuery`

UNION

SELECT * FROM
(
    SELECT  b
    FROM    c
) `secondQuery`
但是,我希望secondQuery从firstQuery中排除行

不起作用。 有人能给我指出正确的方向吗?如何重用子查询的结果

UNION已经从结果集中删除了重复项,因此您只能从“secondquery”中获得“firstquery”-@Aaron Dietz尚未返回的结果


亚伦说得对。谢谢

请看:你听说过CTEs吗?你在没有告诉我们你想要完成什么的情况下发布了一个错误的查询。你希望我们如何帮助你???读这个@Shawn-CTE仅在MySQL 8.0中引入。但你说得对。UNION已经从结果集中删除了重复项,因此你只能从“secondquery”中获得“firstquery”尚未返回的结果
SELECT * FROM
(
    SELECT  a
    FROM    b
) `firstQuery`
UNION
SELECT * FROM
(
    SELECT  b
    FROM    c
    WHERE NOT EXISTS
    (
        SELECT * FROM `firstQuery`
    )
) `secondQuery`