LEFT JOIN в PostgreSQL: левое соединение таблиц

LEFT JOIN в PostgreSQL используется для объединения строк из двух таблиц, включая все строки из левой таблицы и соответствующие строки из правой. Если в правой таблице нет соответствующих записей, в результатах будут NULL.

Использование LEFT JOIN

Объединение таблиц users и orders, включая всех пользователей, даже если у них нет заказов:

SELECT users.id, users.name, orders.id AS order_id, orders.total
FROM users
LEFT JOIN orders ON users.id = orders.user_id;

Этот запрос вернет всех пользователей, а для тех, у кого нет заказов, значения из orders будут NULL.

Фильтрация результатов

Выбор только пользователей, у которых нет заказов:

SELECT users.id, users.name
FROM users
LEFT JOIN orders ON users.id = orders.user_id
WHERE orders.id IS NULL;

Объединение нескольких таблиц

Пример соединения трех таблиц: users, orders и products, включая всех пользователей:

SELECT users.name, orders.id AS order_id, products.name AS product_name
FROM users
LEFT JOIN orders ON users.id = orders.user_id
LEFT JOIN products ON orders.product_id = products.id;

Этот запрос вернет всех пользователей, их заказы (если есть) и соответствующие товары.