SQL — Умова INTERSECT

21

Від автора: оператор INTERSECT SQL використовується для об’єднання двох операторів SELECT, але повертає тільки рядки з першої інструкції SELECT, які збігаються з рядком з другої інструкції SELECT. Це означає, що INTERSECT повертає тільки рядки загальні для двох операторів SELECT.

При використанні INTERSECT, застосовуються ті ж правила, що і при використанні оператора UNION. MySQL не підтримує оператор INTERSECT.

Синтаксис

Основний синтаксис INTERSECT наступний.

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

INTERSECT

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

Тут умова може бути будь-яким виразом, заданим виходячи з ваших потреб.

Приклад

Розглянемо наступні дві таблиці. Таблиця 1 — Таблиця CUSTOMERS виглядає наступним чином

SQL — Умова INTERSECT

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

SQL — Умова INTERSECT

Тепер давайте об’єднаємо ці дві таблиці в інструкції SELECT наступним чином.

SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS
LEFT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
INTERSECT
SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS
RIGHT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

Це дасть наступний результат:

SQL — Умова INTERSECT