SQL — Умова EXCEPT

352

Від автора: оператор 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 виглядає наступним чином.

SQL — Умова EXCEPT

Таблиця 2 — таблиця ORDERS виглядає наступним чином.

SQL — Умова EXCEPT

Тепер давайте об’єднаємо ці дві таблиці в інструкції 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;

В результаті ми отримаємо наступне.

SQL — Умова EXCEPT