1

我想交叉两个“选择”查询,然后为整个结果设置另一个条件。我是说:

(select ... intersect select ...) where ...

可能吗?

4

4 回答 4

4

取决于您对数据库的风格,Oracle(例如)将允许这样做:

SELECT *
  FROM ( SELECT *
           FROM TABLE_A
         INTERSECT
         SELECT *
           FROM TABLE_B
       )
WHERE <conditions>
于 2010-06-02T17:12:31.413 回答
2

Select * From (select ... intersect select ...) as intersectedTable where ...

于 2010-06-02T17:12:00.387 回答
2

您想使用派生表。

    SELECT value,data FROM
    (SELECT value,data FROM table1 union select value,data from table2) t
    WHERE value=5;
于 2010-06-02T17:20:17.163 回答
0

由于您正在相交,因此您对两个 SELECT 中的任何一个设置的任何条件也将适用于整个条件......

所以,最简单的方法就是

SELECT ... FROM ... WHERE (condition)
INTERSECT
SELECT ... FROM ... WHERE (another condition)        
于 2010-06-02T17:13:26.353 回答