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
Написать комментарий

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

Cannot find implementation for Database. Database_Impl does not exist (Room)

Февраль 11, 2025 г.

Данная ошибка при работе c Room обычно связана с неполным или неверным описанием в gradle файлах, связанных с обработчиком аннотаций. Т.е. суть ошибки в том, что он просто не может прочитать аннотации, которые вы сделали к классу базы данных, и по умолчанию ...

Читать

Асинхронная загрузка и инициализация js скрипта

Май 13, 2022 г.

С тех пор как стало возможным указать загружаемому в HTML документе скрипту флаги-аттрибуты async и defer, стало необходимо понимать то, в какой очередности скрипты будут исполнены, если они зависят друг от друга. Так если ваш скрипт зависит от ...

Читать

 

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

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



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