Оператор LEFT JOIN в PostgreSQL отличается от других типов соединений тем, что возвращает все строки в левой таблице и только те строки в правой таблице, где условие соединения было удовлетворено. 1
При применении этой команды запускается поиск совпадений в правой таблице для каждой строки из левой. 3 Однако даже те строки из левой таблицы, к которым не будет найдено совпадения в правой, будут добавлены в результирующую выборку с подставленным значением NULL. 3
Другие типы соединений в PostgreSQL и их отличия:
- INNER JOIN (внутреннее соединение). 35 В итоговой выборке остаются только записи, где ключи совпадают. 3
- LEFT OUTER JOIN. 15 Сначала выполняется внутреннее соединение (INNER JOIN). 5 Затем в результат добавляются все строки из левой таблицы, которым не соответствуют никакие строки в правой, а вместо значений столбцов правой таблицы вставляются NULL. 5 Таким образом, в результирующей таблице всегда будет минимум одна строка для каждой строки из левой таблицы. 5
- RIGHT OUTER JOIN. 15 Работает в обратном порядке: возвращает все строки таблицы с правой стороны и строки таблицы с левой стороны, где условие соединения выполнено. 1 При отсутствии совпадения в пару записывается NULL. 3