В чем разница между UNION и UNION ALL? - PullRequest
1272 голосов
/ 08 сентября 2008

В чем разница между UNION и UNION ALL?

Ответы [ 24 ]

0 голосов
/ 03 января 2019

Единственная разница:

«UNION» удаляет повторяющиеся строки.

«UNION ALL» не удаляет повторяющиеся строки.

0 голосов
/ 16 ноября 2012

UNION и UNION ALL используются для объединения двух или более результатов запроса.

Команда UNION выбирает различную и связанную информацию из двух таблиц, что исключает дублирование строк.

С другой стороны, команда UNION ALL выбирает все значения из обеих таблиц, которые отображают все строки.

0 голосов
/ 03 марта 2016

Если нет ORDER BY, UNION ALL может вернуть строки обратно, тогда как UNION заставит вас подождать до самого конца запроса, прежде чем вы получите полный набор результатов сразу. Это может иметь значение в ситуации тайм-аута - UNION ALL поддерживает соединение как бы живым.

Так что, если у вас проблема с тайм-аутом, и нет сортировки, а дубликаты не являются проблемой, UNION ALL может быть весьма полезным.

0 голосов
/ 22 января 2014

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

, поскольку union внутренне использует «различное» поведение для выбора строк, следовательно, это более затратно с точки зрения времени и производительности. как

select project_id from t_project
union
select project_id from t_project_contact  

это дает мне 2020 записей

с другой стороны

select project_id from t_project
union all
select project_id from t_project_contact

дает мне более 17402 строк

с точки зрения приоритета оба имеют одинаковый приоритет.

...