Какие знаешь соединения в таблицах SQL

«Какие знаешь соединения в таблицах SQL» — вопрос из категории SQL, который задают на 38% собеседований Продуктовый Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В SQL есть несколько типов соединений (JOIN):

  1. INNER JOIN - возвращает только совпадающие строки из обеих таблиц
SELECT * FROM table1
INNER JOIN table2 ON table1.id = table2.id
  1. LEFT JOIN - возвращает все строки из левой таблицы и совпадающие из правой (NULL если нет совпадений)
SELECT * FROM table1
LEFT JOIN table2 ON table1.id = table2.id
  1. RIGHT JOIN - аналогично LEFT, но для правой таблицы

  2. FULL JOIN - возвращает все строки из обеих таблиц (NULL при отсутствии совпадений)

  3. CROSS JOIN - декартово произведение всех строк таблиц

  4. SELF JOIN - соединение таблицы с самой собой (полезно для иерархических данных)

Также есть NATURAL JOIN (по одноименным столбцам) и различные вариации с USING. В аналитике чаще всего используются INNER и LEFT JOIN.