PostgreSQL LEFT JOIN
В PostgreSQL оператор LEFT JOIN используется для объединения двух таблиц, при этом все строки из левой таблицы и только соответствующие строки из правой таблицы включаются в результат. Если нет соответствующих строк в правой таблице, вместо значений полей из правой таблицы будут присвоены значения NULL.
Пример использования оператора LEFT JOIN:
У нас есть две таблицы: "users" и "orders". Таблица "users" содержит информацию о пользователях, а таблица "orders" содержит информацию о заказах, сделанных этими пользователями.
Таблица "users":
id | name
---|------
1 | John
2 | Kate
3 | Mike
Таблица "orders":
id | user_id | product
---|---------|---------
1 | 1 | Phone
2 | 3 | Laptop
3 | 1 | TV
4 | 2 | Tablet
Для получения всех пользователей и всех их заказов можно использовать следующий запрос:
SELECT users.name, orders.product
FROM users
LEFT JOIN orders ON users.id = orders.user_id;
Результат выполнения запроса будет следующим:
name | product
-----|----------
John | Phone
John | TV
Kate | Tablet
Mike | Laptop
В этом примере мы объединяем таблицы "users" и "orders" по полю "id" из таблицы "users" и полю "user_id" из таблицы "orders". Таким образом, строки из таблицы "users" будут включены в результат независимо от наличия соответствующих строк в таблице "orders". Если нет соответствующих строк в таблице "orders", значения полей из таблицы "orders" будут NULL.
В результате получим список имен пользователей и соответствующие им продукты, которые они заказали. Примерно так: John заказал Phone и TV, Kate заказала Tablet, а Mike заказал Laptop.