● 2_04_15-検索処理(結合処理 自己結合)(select)
自己結合は1つのテーブルを別名を使って2つのテーブルのように扱うやり方です。
ある商品よりも価格の高い商品名と価格を抽出します。
構文自体は別名を付けるだけです。SQL以前に要求を理解するほうが難しいかもしれません。
ソートに優先順位が付いているのに注目して下さい。
SELECT
a.e_shouhin_name as 基準商品,
a.e_shouhin_kakaku as 基準価格,
b.e_shouhin_name as 基準商品より価格の高い商品名,
b.e_shouhin_kakaku as 基準商品より価格の高い商品の価格
FROM
e_shouhin_t a join e_shouhin_t b
on ( a.e_shouhin_kakaku < b.e_shouhin_kakaku)
ORDER BY
a.e_shouhin_kakaku,
b.e_shouhin_kakaku
|
上記のSQLを実行すると下記出力されます。

次は少しややこしいですが。
あるシャツの価格よりも高いTシャツの商品一覧です。
WHERE句がポイントです。
SELECT
a.e_shouhin_name as 基準商品,
a.e_shouhin_kakaku as 基準価格,
a.e_shouhin_group as カテゴリ,
b.e_shouhin_name as 基準商品より価格の高い商品名,
b.e_shouhin_kakaku as 基準商品より価格の高い商品の価格,
b.e_shouhin_group as カテゴリ
FROM
e_shouhin_t a join e_shouhin_t b
on ( a.e_shouhin_kakaku < b.e_shouhin_kakaku)
WHERE
a.e_shouhin_group = 'sh' AND
b.e_shouhin_group = 'ts'
ORDER BY
a.e_shouhin_kakaku ,
b.e_shouhin_kakaku
|
大丈夫ですか、ややこしいですか?
途中で分からなくても次に進みましょう。これが分からないからデータベースができない訳ではないですから。
 戻る
|