IT用語集 › データベース › LATERAL結合

LATERAL結合

データベース Svenska → 更新: 2026-10-22

FROM句の中のサブクエリが、左側のリレーションの列を参照できるSQLの機能。SELECT * FROM users u, LATERAL (SELECT * FROM posts WHERE user_id = u.id LIMIT 3) p のように書く。「グループごとの上位N件」パターンに使う。

SQL標準としては1999年から、PostgreSQLでは9.3(2013年)、MySQLでは8.0.14から実装されている。SQL Serverでは CROSS APPLY / OUTER APPLY と呼ばれる。典型的な用途は「ユーザーごとの最新投稿3件」や「顧客ごとの上位5件の注文」。LATERALを使わない場合は、ウィンドウ関数(記述は増えるが速いことが多い)か、行ごとの相関サブクエリ(非常に遅い)になる。PostgreSQLのプランナーは、LATERALを通常の結合に最適化できる場合がある。上級者向けの機能だが、一度も使ったことがなければ、次の「グループごとの上位N件」で効いてくる。

← 用語集に戻る