Что такое LATERAL join? Пример в Postgres и Go.

Ответ

LATERAL позволяет подзапросу в FROM ссылаться на столбцы предыдущих таблиц в том же FROM; подзапрос выполняется для каждой строки. Удобно для "top-N по группе" без оконных функций. В Go пишут обычный SQL с LATERAL.

q := "SELECT u.name, o.* FROM users u, LATERAL (SELECT * FROM orders WHERE user_id = u.id ORDER BY created_at DESC LIMIT 5) o"
rows, err := db.QueryContext(ctx, q)
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.