サブクエリと仮想テーブル
by Natsumi Chiba
SQLのサブクエリと仮想テーブルまとめ
SQLでは、クエリの中にクエリを書くことで柔軟なデータ取得ができます。
これが「サブクエリ」と「仮想テーブル」です。
1. サブクエリとは
概要
SQLの中に書く別のSELECT文。
内側のクエリの結果を外側で利用する。
例
平均年齢より上のユーザーを取得
SELECT *
FROM users
WHERE age > (
SELECT AVG(age)
FROM users
);
ポイント
- 内側のクエリが先に実行される
- 条件や比較に使うことが多い
2. 仮想テーブルとは
概要
サブクエリの結果を「テーブル」として扱うもの
FROM句に書く
例
平均年齢を一緒に表示
SELECT u.name, stats.avg_age
FROM users u
JOIN (
SELECT AVG(age) AS avg_age
FROM users
) stats
ON true;
ポイント
- テーブルのように扱える
- 別名(エイリアス)が必須
3. 違いまとめ
| 項目 | サブクエリ | 仮想テーブル |
|---|---|---|
| 書く場所 | WHEREなど | FROM |
| 役割 | 条件や値を返す | テーブルとして使う |
| 別名 | 不要な場合あり | 必須 |
4. 使い分け
サブクエリ
- 条件で絞るとき
- 集計結果と比較するとき
例
- 平均以上のデータ取得
- 存在チェック
仮想テーブル
- 集計結果をJOINしたいとき
- 複雑な処理を分けたいとき
まとめ
- サブクエリ = クエリの中のクエリ
- 仮想テーブル = サブクエリをテーブル化
- WHEREならサブクエリ、FROMなら仮想テーブルと覚えると理解しやすい