共通SQL

サブクエリ (副問い合わせ)

SQL文の中に入れ子で記述された別のSELECT文

解説

クエリの中にカッコ ( ) で囲んで記述された別のSELECT文(入れ子のクエリ)のことです。あるクエリの実行結果を、外側のメインクエリの抽出条件や一時テーブルとして利用します。

サブクエリの種類と実務での注意

  • スカラーサブクエリ: 1行1列(単一の値)を返すサブクエリ。比較演算子(>, = 等)と組み合わせて使われます。
  • 複数行サブクエリ: 複数行を返すサブクエリ。IN や ANY, ALL と組み合わせて使われます。
  • 相関サブクエリ: 外側クエリの行を参照するサブクエリ。複雑な集計が可能ですが、行数が多いと性能劣化の原因になりやすいため、実務では JOIN やウィンドウ関数への書き換えも検討されます。
構文
SELECT 列 FROM 表 WHERE 列 = (SELECT 列 FROM 別表);
具体例
SELECT * FROM emps_test WHERE salary > (SELECT AVG(salary) FROM emps_test);

この構文を実際に書いて試してみませんか?

SQLエディタを開く