Рассмотрим следующий тип операций над множествами - пересечение строк INTERSECT.
При использовании INTERSECT в результате запроса остаются строки, которые присутствуют в результате и первого, и второго запросов.
Перейдем сразу к примеру.
SELECT *
FROM table1
| value |
|---|
| 1 |
| 3 |
| 5 |
SELECT *
FROM table2
| value |
|---|
| 2 |
| 3 |
| 4 |
SELECT value
FROM table1
INTERSECT
SELECT value
FROM table2
| # | value |
|---|---|
| 1 | 3 |
Следует отметить, что на практике INTERSECT используется довольно редко. Зачастую требуется не сравнить все столбцы запросов между собой, а лишь проверить наличие записи в другой таблице. Для этой задачи лучше подходят подзапросы IN, EXISTS или просто присоединение таблицы.