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