От автора: условие/оператор SQL UNION используется для объединения результатов двух или более инструкций SELECT без включения повторяющихся строк.
Для использования условия UNION, каждый оператор SELECT должен содержать
Такое же количество выбранных столбцов
Такое же количество выражений столбцов
Тот же тип данных
Они должны располагаться в том же порядке
Но они не обязательно должны быть одинаковой длины.
Синтаксис
Основной синтаксис условия UNION следующий:
1 2 3 4 5 6 7 |
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] |
Здесь данное условие может быть любым выражением, заданным исходя из ваших потребностей.
Пример
Рассмотрим следующие две таблицы. Таблица 1 — Таблица CUSTOMERS выглядит следующим образом.
Таблица 2 — Таблица ORDERS выглядит следующим образом.
Теперь давайте объединим эти две таблицы в инструкции SELECT следующим образом:
1 2 3 4 5 6 7 8 9 |
SELECT ID, NAME, AMOUNT, DATE FROM CUSTOMERS LEFT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID UNION SELECT ID, NAME, AMOUNT, DATE FROM CUSTOMERS RIGHT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID; |
Это даст следующий результат —
Условие UNION ALL
Оператор UNION ALL используется для объединения результатов двух операторов SELECT, с включением повторяющихся строк.
Те же правила, которые применяются к условию UNION, будут применяться к оператору UNION ALL.
Синтаксис
Основной синтаксис UNION ALL следующий.
1 2 3 4 5 6 7 |
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION ALL SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] |
Здесь данное условие может быть любым выражением, заданным исходя из ваших потребностей
Пример
Рассмотрим следующие две таблицы, Таблица 1 — Таблица CUSTOMERS выглядит следующим образом.
Таблица 2 — таблица ORDERS выглядит следующим образом.
Теперь давайте объединим эти две таблицы в инструкции SELECT следующим образом:
1 2 3 4 5 6 7 8 9 |
SELECT ID, NAME, AMOUNT, DATE FROM CUSTOMERS LEFT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID UNION ALL SELECT ID, NAME, AMOUNT, DATE FROM CUSTOMERS RIGHT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID; |
Это даст следующий результат:
Существует два других условия или оператора похожих на условие UNION.р>
Условие SQL INTERSECT − используется для объединения двух инструкций SELECT, но возвращает только строки из первого оператора SELECT, которые совпадают со строкой из второго оператора SELECT.
Условие SQL EXCEPT − объединяет два оператора SELECT и возвращает строки из первого оператора SELECT, которые не возвращаются вторым оператором SELECT.
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.