SQLのサブクエリ(副問い合わせ)は、メインクエリ(外側の主問い合わせ)のSELECT、FROM、WHERE句などで使用される、括弧()で囲まれた内側のクエリです。サブクエリが先に実行され、その結果をメインクエリが利用することで、動的な条件指定や複雑なデータ抽出を1つのSQLで実現します。
サブクエリの主な特徴と利用場面
- 処理順序: 内側のサブクエリが最初に実行され、その結果が外側のメインクエリに渡される。
- 配置場所: 主に
WHERE句(条件絞り込み)、SELECT句(計算列)、FROM句(一時テーブル)、HAVING句(グループ化後の条件)で使用される。 - メリット: 複雑なクエリを段階的にロジカルに記述でき、可読性の向上や動的な値の利用が可能になる。
- 注意点: サブクエリは通常、通常のSQL文よりも処理時間がかかる場合があるため、パフォーマンスに注意が必要。
具体例:平均点より高いスコアの生徒を取得する
sql
SELECT 名前, スコア
FROM 生徒テーブル
WHERE スコア > (SELECT AVG(スコア) FROM 生徒テーブル); -- サブクエリ
サブクエリの種類
- スカラ・サブクエリ: 単一の値を返すサブクエリ(
=,>,<などで使用)。 - 相関サブクエリ: メインクエリの各行ごとに再評価されるサブクエリ(処理が遅くなりやすいが強力)。
※本解説はデータベースのSQLにおけるサブクエリ(副問い合わせ)を対象としています。WordPressなどのCMSにおけるメイン/サブクエリとは異なります。

コメント