Ответ
В SQL есть несколько типов соединений (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 (по одноименным столбцам) и различные вариации с USING. В аналитике чаще всего используются INNER и LEFT JOIN.