View in Telegram
UNION в SQL Оператор UNION используется для объединения результатов двух или более запросов SELECT в один набор результатов. Команда UNION отличается от JOIN-операторов, которые объединяют столбцы из двух таблиц. UNION создает новую таблицу, помещая все строки из двух исходных таблиц в таблицу результатов и располагая эти строки друг над другом. Далее приведены основные правила объединения наборов результатов двух запросов SELECT с помощью UNION: - Количество и порядок столбцов должны быть одинаковыми во всех запросах. - Типы данных соответствующих столбцов должны быть совместимы. Если эти критерии выполняются, то таблицы совместимы с оператором UNION. Синтаксис Базовый синтаксис оператора UNION представлен следующим образом: SELECT список_столбцов FROM таблица1 UNION SELECT список_столбцов FROM таблица2; Чтобы лучше понять, как работает оператор UNION, предположим, что в таблицах employees и departments существуют некоторые гипотетические поля first_name и last_name. Обратите внимание, что эти поля на самом деле не существуют в демонстрационных таблицах. Таблица employees +----+------------+-----------+--------+ | id | first_name | last_name | salary | +----+------------+-----------+--------+ | 1 | Ethan | Hunt | 5000 | | 2 | Tony | Montana | 6500 | | 3 | Sarah | Connor | 8000 | | 4 | Rick | Deckard | 7200 | | 5 | Martin | Blank | 5600 | +----+------------+-----------+--------+ Таблица departments +----+------------+-----------+----------+ | id | first_name | last_name | city | +----+------------+-----------+----------+ | 1 | Maria | Anders | Berlin | | 2 | Fran | Wilson | Madrid | | 3 | Dominique | Perrier | Paris | | 4 | Martin | Blank | Turin | | 5 | Thomas | Hardy | Portland | +----+------------+-----------+----------+ Выполним оператор UNION, чтобы объединить результаты двух запросов. Следующая команда вернет имена и фамилии всех клиентов и сотрудников: SELECT first_name, last_name FROM employees UNION SELECT first_name, last_name FROM customers; После выполнения приведенной выше команды вы получите такой результат: +---------------+--------------+ | first_name | last_name | +---------------+--------------+ | Ethan | Hunt | | Tony | Montana | | Sarah | Connor | | Rick | Deckard | | Martin | Blank | | Maria | Anders | | Fran | Wilson | | Dominique | Perrier | | Thomas | Hardy | +---------------+--------------+ Оператор UNION по умолчанию удаляет дублирующиеся строки из объединенного набора результатов. Вот почему приведенный выше запрос возвращает только 9 строк. Если вы заметили, имя Martin Blank встречается и в таблице employees, и в таблице customers. Однако если вы хотите оставить дублирующиеся строки, используйте ключевое слово ALL, как показано ниже: SELECT first_name, last_name FROM employees UNION ALL SELECT first_name, last_name FROM customers; #db 👉 @database_info
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Find friends or serious relationships easily