我正在尝试运行一个使用一对和一对非成对子查询的查询。当主查询的条件为"和" (两个子查询都需要匹配),它返回零行,它应返回两行(以图形方式检查)。但是,当条件是"或"时,主要查询是有效的。 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)的解决方案不同,请尽可能提及它们。我也在学习那些。
答案 0 :(得分:0)
我已经尝试使用版本12c中的HR模式进行类似的查询,并且似乎可行。
div{ height: 50px; border: 1px solid black; }
这应该返回5行。