Рассмотрим следующий тип операций над множествами - пересечение строк 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 или просто присоединение таблицы.