JOIN: LEFT/RIGHT/INNER/OUTER
.png?locale=ua)
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;
Назад