サブクエリとは(服問い合わせ)
- SQLの中に登場するSQLのこと
メリット
- 複数のSELECT文を1つにまとめて記述できる
- 複雑なテーブル結合を使わずに記述できる
デメリット
- SQL文の複雑化
- 通常のSQL文よりも処理時間がかかる場合が多い
例
テーブル
クエリ
select 費目, 出金額
from 家計簿
where 出金額 =
(
select max (出金額) from 家計簿
)
結果
- select文内にselect文が存在する
- 処理の流れ的には、2つ目のselect文から始まり、その結果をwhere文で検索条件を指定
- その後、1つ目のselect文が走る
IN句での副問い合わせ
例
select *
from 家計簿集計
where 費目
in (select distinct 費目 from 家計簿);
結果
FROM句での副問い合わせ
例
select sum(sub.出金額) as 出金額合計
from (
select 日付, 費目, 出金額
from 家計簿
union
select 日付, 費目, 出金額
from 家計簿アーカイブ
where 日付 >= '2018-01-01'
and 日付 <= '2018-01-31'
) as sub
結果
- from句の副問い合わせについては別名をつけてあげる方がわかりやすい(例内の'sub')