LATERAL JOIN

PostgreSQL 🔴 Senior

Definition

JOIN ou la sous-requete droite peut referencer des colonnes de la table gauche. Permet des sous-requetes correlees dans le FROM, comme un forEach SQL.

Analogie

Pour chaque client, ouvrir son dossier et y chercher ses 3 dernieres 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

Recuperer les N derniers elements par groupe sans window function complexe.

Termes lies

#sgbd#interview#database#postgresql