SA Шпаргалка

Все ответы в 2 клика

Продвинутый

Что такое LATERAL JOIN в PostgreSQL?

LATERAL позволяет подзапросу в FROM ссылаться на колонки из предыдущих таблиц в том же FROM.

Обычно таблицы в FROM независимы. Но с LATERAL мы можем для каждой строки из левой таблицы выполнить сложный подзапрос (или функцию), передав туда параметры из этой строки.

Пример: Вывести список пользователей и для каждого найти ровно 3 его самых свежих заказа.

SELECT u.name, o.order_date, o.total
FROM users u
CROSS JOIN LATERAL (
SELECT * FROM orders
WHERE user_id = u.id
ORDER BY order_date DESC LIMIT 3
) o;

Другие вопросы темы «Продвинутый SQL»

Ещё вопросы раздела «SQL и БД»

Все вопросы раздела «SQL и БД»