JOIN: LEFT/RIGHT/INNER/OUTER
.png?locale=ru)
SQL Joins
SQL JOIN — это операция, позволяющая объединять данные из нескольких таблиц на основе связанных столбцов.
Основные типы JOIN INNER
- JOIN – возвращает только строки, у которых есть совпадения в обеих таблицах.
- LEFT JOIN (LEFT OUTER JOIN) – возвращает все строки из левой таблицы и соответствующие строки из правой таблицы.
- RIGHT JOIN (RIGHT OUTER JOIN) – возвращает все строки из правой таблицы и соответствующие строки из левой таблицы.
- FULL JOIN (FULL OUTER JOIN) – объединяет
- LEFT JOIN и RIGHT JOIN – возвращает все строки из обеих таблиц.
Дополнительные JOINs CROSS JOIN – Декартово произведение: каждая строка из первой таблицы соединяется со всеми строками из второй таблицы. SELF JOIN – таблица соединяется сама с собой. NATURAL JOIN – автоматически соединяет таблицы по столбцам с одинаковыми именами (не рекомендуется).
Примеры:
1. INNER JOIN Возвращает только совпадающие записи:
SELECT users.id, users.name, orders.amount FROM users INNER JOIN orders ON users.id = orders.user_id;
2. LEFT JOIN Все пользователи + их заказы (если есть):
SELECT users.id, users.name, orders.amount FROM users LEFT JOIN orders ON users.id = orders.user_id;
3. RIGHT JOIN Все заказы + пользователи (если есть):
SELECT users.id, users.name, orders.amount FROM users RIGHT JOIN orders ON users.id = orders.user_id;
4. FULL JOIN Все пользователи и заказы, даже если они не связаны:
SELECT users.id, users.name, orders.amount FROM users FULL JOIN orders ON users.id = orders.user_id;
5. CROSS JOIN Декартово произведение:
SELECT users.name, products.name FROM users CROSS JOIN products;
Назад