SQL соединения бывают не только сбоку 🙈

Сегодня хочу поделиться с вами интересным взглядом на SQL соединения. Обычно мы привыкли думать о соединениях "сбоку", представляя себе привычные операции JOIN, которые объединяют строки из двух таблиц по заданному условию. Но что если я скажу вам, что соединения могут быть и "снизу"?

🔸Соединения "сбоку" – это то, к чему мы привыкли. Включают INNER JOIN, LEFT JOIN, RIGHT JOIN и FULL JOIN. Все эти операции выполняются по горизонтальной оси, объединяя строки из одной таблицы со строками другой таблицы:

🔹INNER JOIN: возвращает строки, которые имеют совпадения в обеих таблицах. 🔹LEFT JOIN: возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. 🔹RIGHT JOIN: возвращает все строки из правой таблицы и совпадающие строки из левой таблицы. 🔹FULL JOIN: возвращает все строки, если есть совпадения в одной из таблиц.

🔸Соединения "снизу" – это менее очевидные, но не менее важные операции UNION и UNION ALL. Они объединяют результаты нескольких SELECT-запросов вертикально:

🔹UNION: объединяет результаты двух или более SELECT-запросов, удаляя дубликаты. 🔹UNION ALL: объединяет результаты двух или более SELECT-запросов, включая все дубликаты.

🔸Пример: Предположим, у нас есть две таблицы: employees и managers.

-- Соединение "сбоку" (INNER JOIN)
SELECT employees.name, managers.name
FROM employees
INNER JOIN managers ON employees.manager_id = managers.id;

-- Соединение "снизу" (UNION)
SELECT name FROM employees
UNION
SELECT name FROM managers;

В первом случае мы получаем только тех сотрудников, которые имеют менеджера. Во втором случае – список всех сотрудников и менеджеров, но без дубликатов.

Использование UNION и UNION ALL может быть очень полезным, когда нужно собрать результаты из нескольких запросов в единый список, например, для отчетности.

Надеюсь, этот небольшой экскурс в мир SQL соединений был полезным и интересным для вас! Если у вас есть вопросы или хотите узнать больше – пишите в комментариях! 💬

#CODERIKK #SQL

SQL соединения бывают не только сбоку 🙈 | Сетка — социальная сеть от hh.ru