Краткий справочник

Шпаргалка по SQL JOIN

Краткий справочник по объединению таблиц SQL: синтаксис и диаграммы Венна для INNER JOIN, LEFT JOIN, RIGHT JOIN и FULL OUTER JOIN.

· Опубликовано

Пример синтаксиса

SELECT order_items.id, orders.order_date, order_items.price
FROM order_items
LEFT OUTER JOIN orders
  ON order_items.order_id = orders.id;

Операция JOIN объединяет строки из двух или более таблиц на основе связанного столбца между ними.

Визуализация объединений

SELECT * FROM `A` INNER JOIN `B`
┌────────┐
│ A  ┌───┼────┐
│    │ ∩ │    │
└────┼───┘  B │
     └────────┘
Тип JOIN Включённые данные Описание
INNER JOIN ∩ Возвращает записи с совпадающими значениями в обеих таблицах
LEFT OUTER JOIN A + ∩ Возвращает все записи из таблицы A и совпадающие из таблицы B
RIGHT OUTER JOIN ∩ + B Возвращает все записи из таблицы B и совпадающие из таблицы A
FULL OUTER JOIN A + ∩ + B Возвращает все записи при наличии совпадения в левой или правой таблице

Варианты объединений и фильтры

Left Join с исключением пересечения

SELECT * FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL;

Right Join с исключением пересечения

SELECT * FROM A
RIGHT JOIN B ON A.key = B.key
WHERE A.key IS NULL;

Full Outer Join с исключением пересечения

SELECT * FROM A
FULL OUTER JOIN B ON A.key = B.key
WHERE A.key IS NULL OR B.key IS NULL;

Связанные темы