JOIN vs UNION — в чём разница?

Эти два оператора в SQL на первый взгляд делают похожее — они «объединяют» таблицы. Но делают это по-разному и для разных целей.

Вкратце: JOIN объединяет по горизонтали (добавляются столбцы из разных таблиц), тогда как UNION объединяет по вертикали (добавляются строки из разных запросов).

JOIN — склеиваем строки по какому-то условию

JOIN берёт строки из одной таблицы и дополняет их данными из другой. Главное — задать условие, по которому строки связаны (ON ...). Можно так склеить столбцы из большого числа таблиц.

Оператор JOIN имеет много вариаций, все описаны подробно здесь.

UNION — просто склеиваем выборки

UNION берёт результаты двух запросов и объединяет их в один список. Таблицы не обязательно связаны, но важно, чтобы в обоих подзапросах было одинаковое количество столбцов и совместимые типы.

Например, у нас есть две таблицы «online sales» и «offline sales»:

online_sales

productrevenue
Phone1000
Laptop2000

offline_sales

productrevenue
Monitor1500
Laptop2000

Тогда объединение этих таблиц:

productrevenue
Phone1000
Laptop2000
Monitor1500

Обратите внимание, что в объединение таблиц не вошли дубликаты. Если дубликаты отсекать не нужно, то используйте UNION ALL.

productrevenue
Phone1000
Laptop2000
Monitor1500
Laptop2000

Мало букафф? Читайте есчо !

Группировка строковых значений в выборке из базы данных

Сентябрь 30, 2018 г.

Группировка по полю, содержащему число, используется значительно чаще, чем группировка по текстовому полю. Я думаю, вы использовали функции вроде AVG(), ...

Читать

НФ не требуют введения суррогатных ключей?

Июль 12, 2025 г.

Сами по себе нормальные формы (НФ) не требуют введения суррогатных (искусственных) ключей, но на практике их часто используют при нормализации, особенно начиная со 2НФ и 3НФ. Давайте разберём подробнее. Что такое суррогатный ключ? Суррогатный ...

Читать

SQL-антипаттерны: плохие JOIN'ы и как их избежать

Июль 6, 2025 г.

JOIN — один из мощнейших инструментов в SQL. Но с большой силой приходит большая ответственность. Неверное использование JOIN может приводить к дублированию строк, утечке производительности, неявным ошибкам и даже разрушению логики приложения. В этой ...

Читать

Нормализация базы данных, разбираемся с нормальными формами на примере

Июль 14, 2025 г.

Нормализация - это поэтапный процесс, происходит по шагам. Каждый шаг — это нормальная форма (НФ), которая обычно требует, чтобы предыдущий этап нормализации был выполнен. Всего их выделяют шесть, но чаще всего достаточно первых четырёх. Я рассмотрю их ...

Читать
 

Комментарии к «JOIN vs UNION — в чём разница?»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: