SQL JOINs наглядно: как работать с объединением таблиц

Хотите лучше понимать SQL JOIN? Вот наглядная шпаргалка с примерами и визуализацией!
INNER JOIN – пересечение двух таблиц, возвращает только совпадающие строки.
FULL JOIN – объединяет все данные из обеих таблиц, заполняя пропущенные значения NULL.
FULL JOIN с фильтрацией NULL – выбирает только строки, которые есть только в одной из таблиц.
LEFT JOIN – возвращает все строки из A и совпадающие строки из B.
LEFT JOIN (только уникальные в A) – возвращает только строки из A, которых нет в B.
RIGHT JOIN – аналогично LEFT JOIN, но с приоритетом B.
RIGHT JOIN (только уникальные в B) – выбирает строки, которые есть в B, но отсутствуют в A.

Хотите лучше понимать SQL JOIN? Вот наглядная шпаргалка с примерами и визуализацией!
INNER JOIN – пересечение двух таблиц, возвращает только совпадающие строки.
SQL:
SELECT *
FROM A
INNER JOIN B ON A.key = B.key;
FULL JOIN – объединяет все данные из обеих таблиц, заполняя пропущенные значения NULL.
SQL:
SELECT *
FROM A
FULL JOIN B ON A.key = B.key;
FULL JOIN с фильтрацией NULL – выбирает только строки, которые есть только в одной из таблиц.
SQL:
SELECT *
FROM A
FULL JOIN B ON A.key = B.key
WHERE A.key IS NULL OR B.key IS NULL;
LEFT JOIN – возвращает все строки из A и совпадающие строки из B.
SQL:
SELECT *
FROM A
LEFT JOIN B ON A.key = B.key;
LEFT JOIN (только уникальные в A) – возвращает только строки из A, которых нет в B.
SQL:
SELECT *
FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL;
RIGHT JOIN – аналогично LEFT JOIN, но с приоритетом B.
SQL:
SELECT *
FROM A
RIGHT JOIN B ON A.key = B.key;
RIGHT JOIN (только уникальные в B) – выбирает строки, которые есть в B, но отсутствуют в A.
SQL:
SELECT *
FROM A
RIGHT JOIN B ON A.key = B.key
WHERE B.key IS NULL;