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

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

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

Июль 12, 2025 г.

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

Читать

Первичный и внешний ключ в SQL : простое объяснение

Июль 7, 2025 г.

Когда вы впервые сталкиваетесь с базами данных, всё кажется немного запутанным: таблицы, строки, какие-то "ключи"... Но если объяснить это на живых примерах — всё становится куда яснее. Давайте разберёмся, что такое первичный ключ, внешний ключ, и ещё ...

Читать

Что такое CROSS JOIN

Июль 4, 2025 г.

Конструкция CROSS JOIN в SQL — это один из видов JOIN, который создаёт декартово произведение двух таблиц: каждая строка из первой таблицы соединяется со всеми строками второй. Если: Таблица A содержит m строк, Таблица B содержит n строк, ...

Читать

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

Июль 6, 2025 г.

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

Читать
 

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

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



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