表の結合とサブクエリーを組み合わせて検索
表の結合とサブクエリーを組み合わせることで、より高度な検索をおこなえます。
<例題>
商品表と売上明細から、商品表の単価の平均以上の行の売上No、単価、数量と売上金額を表示する。売上金額は単価*数量で計算する
| 商品CD | 商品名 | 単価 | 
|---|---|---|
| 10 | 鉛筆 | 30 | 
| 20 | 消しゴム | 50 | 
| 30 | シャープペン | 250 | 
| 40 | ボールペン | 150 | 
| 50 | 色鉛筆 | 700 | 
| 60 | ノート | 100 | 
| 売上No | 日付 | 顧客CD | 
|---|---|---|
| 1 | 2001/05/27 | 105 | 
| 2 | 2001/05/27 | 101 | 
| 3 | 2001/05/27 | 103 | 
| 4 | 2001/06/27 | 102 | 
| 5 | 2001/06/27 | 104 | 
| 売上No | 連番 | 商品CD | 数量 | 
|---|---|---|---|
| 1 | 1 | 10 | 10 | 
| 1 | 2 | 30 | 7 | 
| 1 | 3 | 60 | 25 | 
| 2 | 1 | 20 | 15 | 
| 2 | 2 | 40 | 3 | 
| 3 | 1 | 30 | 8 | 
| 3 | 2 | 40 | 30 | 
| 3 | 3 | 50 | 12 | 
| 3 | 4 | 60 | 50 | 
| 4 | 1 | 20 | 21 | 
| 4 | 2 | 40 | 21 | 
| 5 | 1 | 10 | 17 | 
| 5 | 2 | 20 | 5 | 
| 顧客CD | 顧客名 | 
|---|---|
| 101 | 二島商店 | 
| 102 | 姫路商事 | 
| 103 | 大阪物産 | 
| 104 | 神戸商店 | 
| 105 | 福岡商事 | 
SELECT 売上No,単価,数量,単価*数量
FROM 商品表,売上明細
WHERE 商品表.商品CD=売上明細.商品CD ← 商品表の商品CDと売上明細の商品CDが一致する行を結合
    AND 単価>=(SELECT AVG(単価) ← 単価の平均を計算
                FROM 商品表) 
| 売上No | 単価 | 数量 | |
|---|---|---|---|
| 1 | 250 | 7 | 1750 | 
| 3 | 250 | 8 | 2000 | 
| 3 | 700 | 12 | 8400 | 
例題SELECT文の実行順序は次のとおりです。
| 売上No | 単価 | 数量 | |
|---|---|---|---|
| 1 | 30 | 10 | 300 | 
| 1 | 250 | 7 | 1750 | 
| 1 | 100 | 25 | 2500 | 
| 2 | 50 | 15 | 750 | 
| 2 | 150 | 3 | 450 | 
| 3 | 250 | 8 | 2000 | 
| 3 | 150 | 30 | 4500 | 
| 3 | 700 | 12 | 8400 | 
| 3 | 100 | 50 | 5000 | 
| 4 | 50 | 9 | 450 | 
| 4 | 150 | 21 | 3150 | 
| 5 | 30 | 17 | 510 | 
| 5 | 50 | 5 | 250 | 
初詣の意味と諸説、お参りのしかた、喪中の初詣について初詣の知識を解説します。