SELECT .. SELECT/ja
From SQLZoo
Language: | English • 日本語 |
---|
サブクエリ テーブル、導出テーブル、ネストしたクエリ
あるクエリの実行結果を別のクエリの中で利用できる。
FROM とサブクエリ
SELECT
文を FROM
の行で使用できる。
次の場合、導出テーブル X
は name
と gdp_per_capita
のフィールドを持つ。
内側の SELECT
で求められた値は、外側の SELECT
で使われる。
SELECT name, ROUND(gdp_per_capita)
FROM
(SELECT name,
gdp/population AS gdp_per_capita
FROM bbc) X
WHERE gdp_per_capita>20000
注意)
- 内部の表は別名
X
が与えられている。 - 内側のクエリの一つ目のフィールド名は元の名前 name のまま。
- 内側のクエリの二つ目のフィールド名は別名 gdp_per_capita を与えられている。
IN とサブクエリ
ブータンBhutanと同じ地域region にある国を見つける
SELECT
文を WHERE
の行で使うことが出来る。この例では、サブクエリの結果は地域regions のリスト(複数値)になる場合がある。
SELECT name
FROM bbc
WHERE region IN
(SELECT region FROM bbc
WHERE name='Bhutan')
相関サブクエリ
外側のクエリの値が内側のクエリに現れている場合、それは 相関サブクエリ である。
ある国の人口がその国の地域の人口の平均値の5倍を超える人口の国を表示する
SELECT name
FROM bbc b1
WHERE population>
5*(SELECT AVG(population) FROM bbc
WHERE region=b1.region)
次を参照: