Ответ
В PostgreSQL есть несколько видов JOIN:
- INNER JOIN - возвращает строки, где есть совпадения в обеих таблицах.
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id;
- LEFT JOIN - возвращает все строки из левой таблицы и совпадения из правой (NULL если нет совпадений).
SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id;
-
RIGHT JOIN - аналогично LEFT, но для правой таблицы.
-
FULL JOIN - возвращает все строки из обеих таблиц (NULL если нет совпадений).
-
CROSS JOIN - декартово произведение таблиц (все комбинации строк).
-
SELF JOIN - соединение таблицы с самой собой.
Также есть NATURAL JOIN (по одноименным колонкам) и JOIN с USING (явное указание колонок).