首页 > 解决方案 > FROM 子句中子查询的替代方案

问题描述

我有这个在 FROM 子句中有子查询的查询

SELECT x, y 
FROM FOO 
WHERE y IN (SELECT y 
            FROM 
                (SELECT y, z, MIN(v)  
                 FROM BAR 
                 GROUP BY y, z))

教授这门课的教授说不是所有的数据库都支持它,我应该只在WHERE子句中使用子查询。

我正在尝试将上面的查询转换为不在FROM子句中使用子查询,但无法弄清楚。

任何的想法 ?

标签: sqlsubquery

解决方案


这回答了问题的原始版本。

所有数据库都支持FROM子句中的子查询。

正如所写,聚合是完全没有必要的。您正在比较y值。上的计算v无关紧要。所以,你不妨写:

SELECT x, y
FROM FOO
WHERE y in (SELECT y FROM BAR)

推荐阅读