Від автора: оператор EXCEPT SQL використовується для об’єднання двох операторів SELECT і повертає рядки з першого оператора SELECT, які не повертаються другим оператором SELECT. Це означає, що EXCEPT повертає рядки, які не доступні у другому операторі SELECT.
Як і у випадку з оператором UNION, ті ж правила застосовуються при використанні оператора EXCEPT. MySQL не підтримує оператор EXCEPT.
Синтаксис
Основний синтаксис EXCEPT наступний.
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
EXCEPT
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
Тут умова може бути будь-яким виразом, заданий виходячи з ваших потреб.
Приклад
Розглянемо наступні дві таблиці. Таблиця 1 — Таблиця CUSTOMERS виглядає наступним чином.
Таблиця 2 — таблиця ORDERS виглядає наступним чином.
Тепер давайте об’єднаємо ці дві таблиці в інструкції SELECT, як показано нижче.
SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS
LEFT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
EXCEPT
SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS
RIGHT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
В результаті ми отримаємо наступне.