我可以在SQL中一起进行成对和非成对子查询

时间:2018-06-12 14:49:01

标签: sql oracle oracle11g subquery

我正在尝试运行一个使用一对和一对非成对子查询的查询。当主查询的条件为"和" (两个子查询都需要匹配),它返回零行,它应返回两行(以图形方式检查)。但是,当条件是"或"时,主要查询是有效的。 SQL中是否禁止这种类型的事务?

由于列名等原因我无法给出实际的查询,因为这个例子确实代表了这种情况 -

select ...
from <tablename>
-- tuple (pairwise) comparison
where (columnA, columnB) in (select columnA, columnB 
                             from <tablename> 
                             where <some_condition_1>)
-- single column comparison
AND columnC in (select columnC 
                from <tablename> 
                where <some_condition_2>);

执行此查询时,我没有得到任何结果(无;空白表)但是当我用OR替换AND时,我得到了结果(虽然不是想要的)。这不是我必须执行的查询,但我试图了解这是否真的有效。也许有一天,这样的查询对我或其他人来说可能很方便。

我正在使用Oracle 11g XE。但是,如果不同的RDBMS(如Postgres或SQL Server)的解决方案不同,请尽可能提及它们。我也在学习那些。

1 个答案:

答案 0 :(得分:0)

我已经尝试使用版本12c中的HR模式进行类似的查询,并且似乎可行。

div{ height: 50px; border: 1px solid black; }

这应该返回5行。