Таблицы orders_2024 и orders_2025 имеют одинаковую структуру. Некоторые заказы случайно попали в обе таблицы. Чем будут отличаться результаты SELECT * FROM orders_2024 UNION SELECT * FROM orders_2025 и того же запроса с UNION ALL?

AОба запроса вернут одинаковый результат, потому что UNION ALL считается синонимом UNION в стандарте
BЗапрос с UNION уберёт дубликаты строк из общего результата, а UNION ALL вернёт все строки без проверки
CЗапрос с UNION ALL отсортирует объединённый результат, а UNION оставит строки в произвольном порядке
DЗапрос с UNION объединит столбцы двух таблиц по горизонтали, а UNION ALL соединит строки по вертикали
Правильный ответ. UNION убирает дублирующиеся строки из объединённого результата, а UNION ALL возвращает все строки без проверки.

Разбор

UNION выполняет дополнительный шаг дедупликации: если одна и та же строка есть в обоих запросах, она попадёт в результат только один раз. UNION ALL просто склеивает результаты без проверки на дубликаты. На практике UNION ALL обычно быстрее, потому что не тратит ресурсы на поиск и удаление совпадающих строк. Сортировки ни одна из этих операций сама по себе не гарантирует — для упорядочивания нужен ORDER BY.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

Ещё вопросы по теме «Основы SQL-запросов»