JOIN: LEFT/RIGHT/INNER/OUTER

Бази даних
Oleksandr Vykhor
10-06-2021 08:20:00


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;

 

Назад