[前][次][番号順一覧][スレッド一覧]

mysql:11667

From: Hisamitsu Issei <Hisamitsu Issei <ds1i-hsmt@xxxxxxxxxx>>
Date: Sun, 3 Jul 2005 16:14:48 +0900
Subject: [mysql 11667] 同じテーブルに2通りの結合をしている場合の検索

はじめまして久光と申します

 これまでファイルメーカーProのWebサーバー機能で遊ん 
でいたのですが、
レンタルサーバー上で動かしてみたくなって、先月からPHP 
+MySQLの勉強を
始めました。これまでは見よう見まねでなんとかなってたんですが、複 
数の
テーブルが関係する部分を作るところで行き詰まってしまいました。 
MySQL
(4.0.24) PHP(4.3.10)です。



テーブル構成は
 商品情報を記録しているproduct
 会社名を記録しているcorporation

テーブル名:product
---------------------------
id      name      maker_id
---------------------------
1   パワー洗剤A    1
2   ウォッシュB    3
3   洗剤リキッド    1
4   液体洗剤Z      2
---------------------------


テーブル名:corporation
----------------
id     name
----------------
1   久光商事
2   日本産業
3   技術東京
4   神奈川物産
----------------

 商品名の他にもメーカー名を使った検索をするときには
SELECT product.*, corporation.name FROM `product` LEFT JOIN  
`corporation` ON product.maker_id = corporation.id WHERE  
corporation.name = '久光商事'
とすれば久光商事が製造している「パワー洗剤A」と「洗剤リキッド」 
が抽
出できるのはわかります。ここまではいいのですが、ここに販売会社の 
情報
も入れようと考えています。1つの商品について複数の販売会社が存在 
する
ので、

テーブル名:saler
--------------
p_id    c_id
--------------
1        1
1        4
2        1
3        2
3        4
--------------

というテーブルを作って商品テーブルと会社テーブルをつなぐことにし 
まし
た。販売会社名を使った検索なら

SELECT product.*, saler.c_id, corporation.name FROM (`product` LEFT  
JOIN `saler` ON product.id = saler.p_id) LEFT JOIN corporation ON  
saler.c_id = corporation.id WHERE corporation.name = "久光商事"  
GROUP BY product.id

とすれば久光商事が販売している「パワー洗剤A」と「ウォッシュB」 
を抽
出できると考えてます。

 ところでやっと本題なのですが、上記2パターンを組み合わせた場 
合、つ
まり製造会社が「久光商事」で販売会社が「神奈川物産」である「洗剤 
リキッ
ド」を抽出するというような組み合わせのときにどんなSQL文を 
作ればいい
のかというところで行き詰まってしまいました。どちらも 
corporation.name
なので製造と販売の区別をつけられないのです。製造と販売の両方を 
やって
いる会社があるので、製造会社テーブルと販売会社テーブルの2テーブ 
ルを
作るのは管理が面倒になりそうなので避けたいと思っています。

 こんな場合はどうやるのがいいのでしょうか? よろしくお願いいた 
しま
す。




=================================
==       HISAMITSU ISSEI       ==
==  DS1I-HSMT@xxxxxxxxxx  ==
http://www.ne.jp/asahi/pro/his/
=================================


[前][次][番号順一覧][スレッド一覧]

->   11667 2005-07-03 16:14 [Hisamitsu Issei <ds1] 同じテーブルに2通りの結合をしている場合の検索
     11669 2005-07-03 17:06 ┗[とみたまさひろ <tomm]                                       
     11672 2005-07-03 17:50  ┗[Hisamitsu Issei <ds1]