У меня есть несколько операторов SELECT
, которые возвращают одни и те же столбцы, но могут возвращать разные наборы результатов. Есть ли способ выбрать все строки, которые есть в всех наборах результатов на уровне базы данных?
Например:
|---------------------|------------------|---------|
| ID | Name | Age |
|---------------------|------------------|---------|
| 1 | Paul | 50 |
| 2 | Peter | 40 |
| 3 | Frank | 20 |
| 4 | Pascal | 60 |
|---------------------|------------------|---------|
SELECT 1
SELECT name FROM table WHERE age > 40
Result: Paul, Pascal
SELECT 2
SELECT name FROM table where name like 'P%'
Result: Paul, Peter, Pascal
SELECT 3
SELECT name FROM table where id > 3
Result: Pascal
РЕДАКТИРОВАТЬ: Это очень упрощенный пример моей проблемы , Операторы могут быть очень сложными (объединяются по нескольким таблицам), поэтому простой AND
в части WHERE
не является окончательным решением.
Результат должен быть Pascal
. То, что я ищу, это что-то вроде «обратного UNION
».
В качестве альтернативы можно было бы достичь этого программно (NodeJS), но я бы хотел избежать перебора всех наборов результатов, потому что они могут быть довольно огромными.
Заранее спасибо!