2_04_15-検索処理(結合処理 自己結合)(select)

PHPとPostgreSQLを利用したWEBシステムの開発例を掲載していきます。腕時計 販売サイト my-watch.biz



● 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

大丈夫ですか、ややこしいですか?
途中で分からなくても次に進みましょう。これが分からないからデータベースができない訳ではないですから。


戻る

Copyright (c) 2007 MSweb All Rights Reserved

腕時計 クロノグラフ(時計)のメンズ専門販売サイトカシオ G-SHOCK、Baby-G(腕時計)専門の通信販売サイトG-SHOCK、Baby-G専門通販サイト 運営ブログ

腕時計 女性専用 販売のladies-watch.biz腕時計 メンズ(男性)専門販売のmens-watch.biz