Что такое LATERAL join?

Ответ

Подзапрос в FROM может ссылаться на столбцы предыдущих таблиц в том же FROM - выполняется для каждой строки (как коррелированный подзапрос). В PostgreSQL: FROM t1, LATERAL (SELECT ... FROM t2 WHERE t2.a = t1.a) sub.

SELECT u.name, o.* FROM users u,
LATERAL (SELECT * FROM orders WHERE user_id = u.id ORDER BY created_at DESC LIMIT 5) o;

Удобно для "top-N по группе" и подобных запросов без оконных функций.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.