Задача исключения набора строк из выборки является типовой для разработчика.

Обычно применяют:

  • NOT IN;
  • NOT EXISTS;
  • внешнее соединение с проверкой на NULL значения столбца, имеющим ограничение NOT NULL;
  • EXCEPT (MINUS в СУБД Oracle и MySQL).

Рассмотрим оператор исключения строк EXCEPT. После применения EXCEPT в результате останутся строки из первого запроса, которых нет во втором запросе.

Пример:

SELECT *
  FROM table1
value
1
3
5
SELECT *
  FROM table2
value
2
3
4
SELECT value
  FROM table1
EXCEPT
SELECT value
  FROM table2
# value
1 1
2 5

5.3 Пересечение строк

5.5 Дубликаты строк