Все истории

🗃 SQL JOIN: как перестать бояться таблиц

Копия публикации из архива канала. Дата и текст сохранены.

Есть момент, через который проходит почти каждый новичок в SQL.

С одной таблицей всё понятно:
SELECT, WHERE, фильтры — красота.
А потом появляются JOIN'ы.

И внезапно перед тобой две таблицы, какие-то id, user_id, product_id, стрелочки в голове и ощущение, что база данных решила тебя добить 😆
На самом деле JOIN — штука довольно простая.

Представь:
Есть таблица users:
id | name
И таблица orders:
id | user_id | total
В заказе хранится только user_id, а имя пользователя лежит в другой таблице.

Чтобы получить:
Иван — 1500 ₽
нужно просто сказать базе:
«Возьми заказ и найди пользователя, у которого users.id = orders.user_id».
Вот и весь JOIN.

Например:
SELECT users.name, orders.total
FROM orders
JOIN users ON users.id = orders.user_id;

🔥 Самое важное — не зубрить JOIN'ы как магические заклинания, а понимать смысл:
мы связываем строки двух таблиц по общему признаку.

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

Хороший способ разобраться — взять две маленькие таблицы по 3–4 строки и вручную представить, что получится после каждого JOIN.

После пары таких примеров магия быстро заканчивается.
И вместо:
«О нет, опять JOIN»
начинаешь думать:
«Так, какую таблицу к какой я сейчас хочу приклеить?» 😎

А это уже совсем другой уровень спокойствия.