MySQL UNION – полный учебник

Что такое союз?

Союзы объединяют результаты нескольких запросов SELECT в консолидированный результирующий набор.
Единственные требования для этого – это то, что количество столбцов должно быть одинаковым из всех запросов SELECT, которые необходимо объединить.

Предположим, что мы имеем две таблицы следующим образом

Давайте теперь создадим запрос UNION для объединения обеих таблиц с помощью DISTINCT

Здесь дубликаты строк удаляются и возвращаются только уникальные строки.

Примечание. MySQL использует предложение DISTINCT как значение по умолчанию при выполнении запросов UNION, если ничего не указано.
Давайте теперь создадим запрос UNION для объединения обеих таблиц с помощью ALL

Здесь дублируются строки, и мы используем ALL.

Зачем использовать союзы

Предположим, что в вашем проекте базы данных есть недостаток, и вы используете две разные таблицы, предназначенные для той же цели. Вы хотите объединить эти две таблицы в один, не опуская дубликатов записей из новой таблицы. Вы можете использовать UNION в таких случаях.

Резюме

  •  Команда UNION используется для объединения нескольких результатов запроса SELECT в один запрос, содержащий строки из всех выбранных запросов.
  • Количество столбцов и типов данных в операторах SELECT должно быть одинаковым для того, чтобы команда UNION работала.
  • Предложение DISTINCT используется для устранения повторяющихся значений из набора результатов запроса UNION. MySQL использует предложение DISTINCT как значение по умолчанию при выполнении запросов UNION, если ничего не указано.
  •  Предложение ALL используется для возврата всех даже повторяющихся строк в запрос UNION.

Практические примеры с использованием MySQL Workbench

В нашем myFlixDB можно комбинировать
member_number и full_names из таблицы Members
с
movie_id и название из таблицы фильмов
Мы можем использовать следующий запрос

Выполнение приведенного выше сценария в workbench MySQL для myflixdb дает нам следующие результаты, показанные ниже.

membership_number full_names
1 Janet Jones
2 Janet Smith Jones
3 Robert Phil
4 Gloria Williams
5 Leonard Hofstadter
6 Sheldon Cooper
7 Rajesh Koothrappali
8 Leslie Winkle
9 Howard Wolowitz
16 67% Guilty
6 Angels and Demons
4 Code Name Black
5 Daddy’s Little Girls
7 Davinci Code
2 Forgetting Sarah Marshal
9 Honey mooners
19 movie 3
1 Pirates of the Caribean 4
18 sample movie
17 The Great Dictator
3 X-Men

 

0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *