Difference between revisions of "Using nested SELECT/ja"
Kobashi.kaz (talk | contribs) |
Kobashi.kaz (talk | contribs) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | {{Languages|Using_nested_SELECT}} | ||
元のチュートリアル [[SELECT within SELECT Tutorial/ja]] に戻る。 | 元のチュートリアル [[SELECT within SELECT Tutorial/ja]] に戻る。 | ||
==SELECT の中で SELECT を使う== | ==SELECT の中で SELECT を使う== | ||
Line 61: | Line 62: | ||
</div> | </div> | ||
− | == | + | ==集合に対するオペレータ(演算子)== |
− | + | 2項演算のオペレータは通常は2つのパラメータを伴う: | |
− | = | + | = 等しい |
− | > | + | > より大きい |
− | < | + | < より小さい |
− | >= | + | >= より大きいか等しい |
− | <= | + | <= より小さいか等しい |
− | + | ALL または ANY のキーワードをオペレータの右側に指定すると複数の値を扱うことが出来る様になる。 | |
<div class='qu'> | <div class='qu'> | ||
− | <p class='imper'> | + | <p class='imper'>ヨーロッパ Europe のすべてのALL 国の人口よりも大きな人口の国を表示する。</p> |
− | + | 注)ヨーロッパのそれぞれの一国の人口より大きいことを意味する。ヨーロッパ全体の人口(合算)ではない。 | |
<source lang='sql' class='def'> | <source lang='sql' class='def'> | ||
SELECT name FROM world | SELECT name FROM world | ||
Line 80: | Line 81: | ||
</div> | </div> | ||
− | + | [[SELECT within SELECT Tutorial/ja]]に戻る。 |
Latest revision as of 06:23, 24 March 2020
Language: | English • 日本語 • 中文 |
---|
元のチュートリアル SELECT within SELECT Tutorial/ja に戻る。
Contents
SELECT の中で SELECT を使う
導出テーブル(SELECTの実行結果としてのテーブル)の使い方は SELECT FROM SELECT を見る 導出テーブル.
SELECT 文の実行結果は、他のSELECT文の中で 値やテーブルとして利用できる。
次の例文:
SELECT continent FROM world WHERE name = 'Brazil'
の実行結果は'South America'
で、この値をブラジル'Brazil'と同じ大陸にある全ての国名のリストを得るために利用する
ブラジル'Brazil' と同じ大陸にある各国のリストを求める
SELECT name FROM world WHERE continent =
(SELECT continent
FROM world WHERE name = 'Brazil')
エイリアス
SQL のバージョンによってはサブクエリにエイリアス(別名)を付けることが必要となる。単にAS 別名
を閉じた括弧(サブクエリ)の後ろに書けばよい:
SELECT name FROM world WHERE continent = (SELECT continent FROM world WHERE name='Brazil') AS brazil_continent
実行結果が複数の値となる場合
サブクエリで複数の値を一度の実行結果として得ることが出来る。もしもそのようなことが起きた場合、上記の例のクエリでは、1個の値と2個以上の値を比較しているので、失敗(実行結果がエラー)となる。 IN を使うことで、この様な可能性により安全に対処できる。
次の文 (SELECT continent FROM world WHERE name = 'Brazil' OR name='Mexico')
で、2つの値('North America' and 'South America')が求まる。これを次のように使う:
SELECT name, continent FROM world WHERE continent IN (SELECT continent FROM world WHERE name='Brazil' OR name='Mexico')
ブラジル'Brazil' またはメキシコ'Mexico' と同じ大陸にある各国とその大陸をリストアップする。
SELECT name, continent FROM world
WHERE continent IN
(SELECT continent
FROM world WHERE name='Brazil'
OR name='Mexico')
SELECT 文のフィールド中のサブクエリ
一つの値だけが求められるようなサブクエリは、SELECT 文のフィールで利用できる。
中国 China の人口 population をイギリス United Kingdom の何倍あるかで表示する
SELECT
population/(SELECT population FROM world
WHERE name='United Kingdom')
FROM world
WHERE name = 'China'
集合に対するオペレータ(演算子)
2項演算のオペレータは通常は2つのパラメータを伴う:
= 等しい > より大きい < より小さい >= より大きいか等しい <= より小さいか等しい
ALL または ANY のキーワードをオペレータの右側に指定すると複数の値を扱うことが出来る様になる。
ヨーロッパ Europe のすべてのALL 国の人口よりも大きな人口の国を表示する。
注)ヨーロッパのそれぞれの一国の人口より大きいことを意味する。ヨーロッパ全体の人口(合算)ではない。
SELECT name FROM world
WHERE population > ALL
(SELECT population FROM world
WHERE continent='Europe')