Предположим, у вас есть два стола Учитель & Ученик
Оба имеют 4 столбца с разными именами , как это
Teacher - ID(int), Name(varchar(50)), Address(varchar(50)), PositionID(varchar(50))
Student- ID(int), Name(varchar(50)), Email(varchar(50)), PositionID(int)
Вы можете применить UNION или UNION ALL для тех двух таблиц, которые имеют одинаковое количество столбцов. Но у них другое имя или тип данных.
Когда вы применяете операцию UNION
к 2 таблицам, она игнорирует все повторяющиеся записи (значение всех столбцов строки в таблице совпадает со значением другой таблицы). Как это
SELECT * FROM Student
UNION
SELECT * FROM Teacher
результат будет
Когда вы применяете операцию UNION ALL
к 2 таблицам, он возвращает все записи с дубликатом (если есть разница между значениями столбцов строки в 2 таблицах). Как это
SELECT * FROM Student
UNION ALL
SELECT * FROM Teacher
выход
Производительность:
Очевидно, что производительность UNION ALL лучше, чем UNION , поскольку они выполняют дополнительную задачу по удалению дублирующихся значений. Вы можете проверить это в Расчетное время выполнения , нажав ctrl + L в MSSQL