初詣合格祈願SQL講座

SQL講座 複数の表の連携6

目指せ!SQL

初詣合格祈願SQL講座 複数の表の連携6

抽出結果を元にさらに抽出をおこなう

SELECT文の中にさらにSELECT文を記述することができます。SELECT文で抽出したデータを抽出条件とするということです。

記述形式 SELECT 列名1,列名2,〜列名n ← 表示させたい列
FROM 表名1,表名2,〜表名n ← 抽出対象となる表
WHERE 列名 演算子 ← サブクエリーの抽出結果を元に抽出する条件
 (抽出結果が複数になるときは演算子にINなどを指定する)
↓サブクエリ
(SELECT 列名 ← 外側のSELECT文のWHERE句で指定された条件の値を持つ列
FROM 表名 ← 抽出の対象となる表
WHERE 抽出条件) ← 抽出条件
↑サブクエリ
二つのSELECT文の実行順序はカッコに記述されているSELECT文から実行されます。このカッコ内に記述されたSELECT文のことをサブクエリー(副問合せ)と呼びます。

<例題>
売上表から売上Noが1の顧客CDを検索し、顧客表から顧客名を表示する

商品表(主キー:商品コード)
商品CD商品名単価
10鉛筆30
20消しゴム50
30シャープペン250
40ボールペン150
50色鉛筆700
60ノート100

売上No日付顧客CD
12001/05/27105
22001/05/27101
32001/05/27103
42001/06/27102
52001/06/27104

売上明細(主キー:売上No,連番)
売上No連番商品CD数量
111010
12307
136025
212015
22403
31308
324030
335012
346050
412021
424021
511017
52205

顧客表(主キー:顧客CD)
顧客CD顧客名
101二島商店
102姫路商事
103大阪物産
104神戸商店
105福岡商事

SELECT 顧客名 ← 顧客名を表示
FROM 顧客表
WHERE 顧客CD=
(SELECT 顧客CD
FROM 売上表
WHERE 売上No=1)

実行結果
顧客名
福岡商事

例題SELECT文の実行順序は次のとおりです。

  1. FROM句で記述されている「顧客表」を読み込む
  2. WHERE句で指定されているカッコ内のSQLの実行をおこなう
    (SELECT 顧客CD
    FROM 売上表    ⇒ 顧客CD 105
    WHERE 売上No=1)
  3. WHERE句で指定した条件「WHERE 顧客CD= 105」で行を抽出する。



初詣合格祈願SQL講座ページTOPに戻る

  

永代供養の仕方として、永代供養墓は個別の墓地や仏壇が必要ないのが便利ですが墓によっては個別のスペースがないためお花・お供えものなど自由に行えない場合があるので注意が必要です。
正月の準備の時期と「ことはじめ」について解説します。
仏教と女性についてブッタのことばに「スッタニパータ」ということばがある。この中には、明らかに女性差別なのではないかという記述がいくつか存在する。