如何交叉两个“选择”,然后为结果添加另一个条件

时间:2010-06-02 17:09:03

标签: sql intersection

我希望将两个“select”查询相交,然后为整个结果添加另一个条件。我的意思是:

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

有可能吗?

4 个答案:

答案 0 :(得分:4)

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

SELECT *
  FROM ( SELECT *
           FROM TABLE_A
         INTERSECT
         SELECT *
           FROM TABLE_B
       )
WHERE <conditions>

答案 1 :(得分:2)

选择*从(选择...相交选择...)作为intersectedTable,其中......

答案 2 :(得分:2)

您想使用派生表。

    SELECT value,data FROM
    (SELECT value,data FROM table1 union select value,data from table2) t
    WHERE value=5;

答案 3 :(得分:0)

由于你是相交的,你在两个SELECT中的任何一个上的任何条件也将适用于整个条件......

所以,最简单的方法就是

SELECT ... FROM ... WHERE (condition)
INTERSECT
SELECT ... FROM ... WHERE (another condition)