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;


Назад