在WHERE子句中重用子查询

时间:2015-09-03 14:54:58

标签: sql postgresql

我有一个具有以下结构的查询:

SELECT blah1 from blah2 where exists (Sub-query) AND Sub-query.col = 'val'

如何在WHERE子句的AND部分中引用子查询(及其列Sub-query.col)?

编辑:此可以解除关联并写为联接,但我没有找到该解决方案。

1 个答案:

答案 0 :(得分:1)

你没有。你把它放在from子句中。根据您的描述,子查询最多只返回一行,因此您可以这样做:

select blah1 
from blah2 cross join
     (sub-query) s
where s.col = 'val';

实际上,你也可以这样做:

select blah1
from blah2
where (select col from (sub-query) s) = 'val';

由于exists无法使用过滤器,因此会NULL处理。