Задача исключения набора строк из выборки является типовой для разработчика.
Обычно применяют:
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 |