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

mysql:15628

From: 久光 一誠 <久光 一誠 <ds1i-hsmt@xxxxxxxxxx>>
Date: Tue, 20 Sep 2011 09:58:36 +0900
Subject: [mysql 15628] LEFT JOIN で結合先がない場合

久光と申します

下記のような3つのテーブルがあり、

商品テーブル(tabS)
[id] [name]
1 テレビ
2 洗濯機

国テーブル(tabK)
[id] [name]
1 日本
2 米国
3 中国

国別情報テーブル(tabJ)
[shouhin_id] [kuni_id] [jouhou]
1 1 情報A
1 3 情報B
2 2 情報C

このテーブル構成から例えばテレビに関する国別情報を国テーブルのid順に
 情報A
 (空値またはNULL)
 情報B
という形で取り出そうと思い

SELECT  tabJ.jouhou 
FROM tabK LEFT JOIN tabJ ON tabK.id = tabJ.kuni_id 
WHERE shouhin_id = 1
ORDER BY tabK.id

と書いたのですが、これでは結合先がないものは空値またはNULLで返ってこず、期待した結果になりませんでした(情報Aと情報Bの2行しか返ってこなかった)。
上記のテーブル構成で、国テーブルのid順に沿って国別情報テーブルから(情報がない場合は空値またはNULLが返ってくるように)取り出すにはどんなSQL文を書いたらいいでしょうか?

なお国別情報テーブルは商品IDと国IDのセットが重複しない仕組みにしてあるので、一つの商品に同じ国の情報が複数現れることはない前提で考えています。

よろしくお願いいたします。


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

->   15628 2011-09-20 09:58 [久光 一誠 <ds1i-hsmt] LEFT JOIN で結合先がない場合            
     15631 2011-09-20 12:51 ┗[Takeshi Hayase <linu]                                       
     15632 2011-09-20 20:44  ┗[久光 一誠 <ds1i-hsmt]