В этом учебном пособии вы узнаете, как использовать оператор UNION в MariaDB с синтаксисом и примерами.
Описание
MariaDB оператор UNION используется для объединения результирующих наборов из 2 или более операторов SELECT. Он удаляет повторяющиеся строки между различными операторами SELECT.
Каждый оператор SELECT в операторе UNION должен иметь одинаковое количество полей в наборах результатов с одинаковыми типами данных.
Синтаксис
Синтаксис оператора UNION в MariaDB:
FROM tables
[WHERE conditions]
UNION [DISTINCT]
SELECT expression1, expression2, .. expression_n
FROM tables
[WHERE conditions];
Параметры или аргументы
- expression1, expression2, .. expression_n
- Столбцы или вычисления, которые вы хотите получить.
- tables
- Таблицы, из которых вы хотите получить записи. В предложении FROM должна быть указана хотя бы одна таблица.
- WHERE conditions
- Необязательный. Условия, которые должны быть выполнены для записей, которые будут выбраны.
- DISTINCT
- Удаляет дубликаты из набора результатов, но включение модификатора DISTINCT не влияет на набор результатов оператора UNION, потому что по умолчанию оператор UNION уже удаляет дубликаты.
Примечание
- В обоих операторах SELECT должно быть одинаковое количество выражений.
- Поскольку оператор UNION по умолчанию удаляет все повторяющиеся строки из набора результатов, предоставление модификатора UNION DISTINCT не влияет на результаты.
- Имена столбцов из первого оператора SELECT в операторе UNION используются в качестве имен столбцов для набора результатов.
Пример возврат одного поля
Ниже приведен пример оператора UNION, который возвращает одно поле из нескольких операторов SELECT (и оба поля имеют одинаковый тип данных):
1 2 3 4 5 |
SELECT site_id FROM sites UNION SELECT site_id FROM pages; |
В этом примере оператора MariaDB UNION, если site_id появится в таблицах sites и pages, он будет один раз отображен в вашем наборе результатов. MariaDB оператор UNION удаляет дубликаты. Если вы не хотите удалить дубликаты, попробуйте использовать оператор MariaDB UNION ALL.
Пример - использование ORDER BY
MariaDB оператор UNION может использовать предложение ORDER BY для упорядочивания результатов запроса.
Например:
1 2 3 4 5 6 7 8 |
SELECT site_id, site_name FROM sites WHERE site_name = 'Google.com' UNION SELECT page_id, page_title FROM pages WHERE page_id > 10 ORDER BY 2; |
В этом MariaDB операторе UNION, поскольку имена столбцов в двух операторах SELECT различаются, более выгодно ссылаться на столбцы в операторе ORDER BY по их положению в наборе результатов. В этом примере мы отсортировали результаты по site_name / page_title в порядке возрастания, как обозначено ORDER BY 2
.
Поля site_name / page_title находятся в позиции № 2 в наборе результатов.