В чём разница между UNION и JOIN в SQL?

Чем отличаются UNION и JOIN? SQL-операторы для объединения и связывания данных таблиц UNION: соединяет строки результатов нескольких таблиц или запросов в единый набор, располагая их последовательно Для UNION…

Короткий ответ

Что ответить на собеседовании

Чем отличаются UNION и JOIN? SQL-операторы для объединения и связывания данных таблиц UNION: соединяет строки результатов нескольких таблиц или запросов в единый набор, располагая их последовательно Для UNION необходимо одинаковое количество столбцов и совместимые типы данных Обычный UNION убирает дубликаты, а UNION ALL сохраняет все строки JOIN: связывает таблицы по общим столбцам и дополняет строки колонками из другой таблицы Варианты JOIN — INNER, LEFT, RIGHT и FULL — определяют состав строк результата UNION выбирают для объединения наборов с одинаковой структурой, а JOIN — для сопоставления связанных записей из разных таблиц

Подробный разбор

Ответ с пояснениями

Чем отличаются UNION и JOIN?

  • SQL-операторы для объединения и связывания данных таблиц
  • UNION: соединяет строки результатов нескольких таблиц или запросов в единый набор, располагая их последовательно
  • Для UNION необходимо одинаковое количество столбцов и совместимые типы данных
  • Обычный UNION убирает дубликаты, а UNION ALL сохраняет все строки
  • JOIN: связывает таблицы по общим столбцам и дополняет строки колонками из другой таблицы
  • Варианты JOIN — INNER, LEFT, RIGHT и FULL — определяют состав строк результата
  • UNION выбирают для объединения наборов с одинаковой структурой, а JOIN — для сопоставления связанных записей из разных таблиц

Подробный ответ

Основной ответ

UNION и JOIN решают разные задачи объединения данных в SQL. UNION складывает результаты двух или более запросов в один набор строк. JOIN, напротив, соединяет связанные таблицы по условию и добавляет к строкам столбцы из другой таблицы.

Ключевые моменты

  • UNION работает по вертикали: строки одной выборки добавляются к строкам другой. При этом число столбцов и их типы должны совпадать. Оператор по умолчанию удаляет дубликаты, тогда как UNION ALL возвращает все строки.
  • JOIN выполняет горизонтальное объединение: к строкам одной таблицы присоединяются столбцы другой по условию связи, например по ключу. Типы INNER, LEFT, RIGHT и FULL определяют, какие строки войдут в итоговую выборку.
  • Назначение и использование у операторов различаются: UNION подходит для объединения однотипных данных из разных источников, например списков клиентов разных регионов. JOIN применяют, когда нужно "склеить" сведения из связанных таблиц — например данные заказа и информацию о клиенте.

Практический контекст

В прикладных системах, включая PostgreSQL 14+, JOIN часто используют для получения общей информации о пользователях и их заказах. UNION применяют в отчётах, где требуется объединить данные разных периодов или категорий при совпадающей структуре. Trade-off заключается в том, что JOIN может работать медленнее из-за сопоставления данных, зато даёт более подробный результат; UNION обычно быстрее, но только расширяет набор строк.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку