LATERAL JOIN

PostgreSQL 🔴 Senior

Définition

JOIN ou la sous-requête droite peut référencer des colonnes de la table gauche. Permet des sous-requêtes corrélées dans le FROM, comme un forEach SQL.

Analogie

Pour chaque client, ouvrir son dossier et y chercher ses 3 dernières commandes.

Exemple de code

SELECT u.name, recent.title
FROM users u
LATERAL (
  SELECT title FROM orders
  WHERE user_id = u.id
  ORDER BY created_at DESC
  LIMIT 3
) recent;

Cas d'usage

Récupérer les N derniers éléments par groupe sans window function complexe.

#sgbd#interview#database#postgresql

← → au clavier pour passer d'une fiche à l'autre