Какие знаешь виды join в PostgreSQL

«Какие знаешь виды join в PostgreSQL» — вопрос из категории Базы данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В PostgreSQL есть несколько видов 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 (по одноименным колонкам) и JOIN с USING (явное указание колонок).