как пересечь два "выбора", а затем поставить другое условие для результата - PullRequest
1 голос
/ 02 июня 2010

Я хочу пересечь два запроса "выбор", а затем поставить другое условие для всего результата Я имею в виду:

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

это возможно?

Ответы [ 4 ]

4 голосов
/ 02 июня 2010

Зависит от вашего вкуса базы данных Oracle (например) позволит это:

SELECT *
  FROM ( SELECT *
           FROM TABLE_A
         INTERSECT
         SELECT *
           FROM TABLE_B
       )
WHERE <conditions>
2 голосов
/ 02 июня 2010

Вы хотите использовать производную таблицу.

    SELECT value,data FROM
    (SELECT value,data FROM table1 union select value,data from table2) t
    WHERE value=5;
2 голосов
/ 02 июня 2010

Выберите * Из (выберите ... пересекаются, выберите ...) как ПересеченныйТаблица, где ...

0 голосов
/ 02 июня 2010

Поскольку вы пересекаете, любое условие, которое вы накладываете на любой из двух SELECT, также будет применяться ко всему условию ...

Итак, самый простой способ - просто

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