首页 > 解决方案 > 如何在嵌套查询中重用联合表?

问题描述

我有一个查询要求我在 3 种产品中找到最高价格。

不使用任何最大或顶部功能。

我得到 3 个单独的产品表,其中包含 ID 和价格以及其他(不完全相同)属性。我的想法是将 3 (SELECT id, price) 表联合在一起,然后选择价格> ALL 的一条记录。


SELECT tb1.model
FROM (
    SELECT model, price FROM pc
    UNION
    SELECT model, price FROM laptop
    UNION
    SELECT model, price FROM printer) tb1
    WHERE tb1.price>= ALL(
        SELECT price FROM(
            SELECT model, price FROM pc
            UNION
            SELECT model, price FROM laptop
            UNION
            SELECT model, price FROM printer
            )
        );

我想知道有没有办法不在嵌套查询中重复 UNION 部分?像现在一样,我不能在内部查询中使用 tb1 。

标签: sql

解决方案


推荐阅读