共通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エディタを開く