人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLの結合(join)について質問です。

テーブルがmain,sub1,sub2と存在するとします。
この3つのテーブルを結合するには
"SELECT * FROM (main INNER JOIN sub1 on main.id=sub1.id) INNER JOIN sub2 on main.id=sub2.id";

という文になるかと思います。

そこで質問ですが、各テーブルに共通するidが入っていないとデータが表示されません。例えば、mainのidに[aaa]があり、sub1のidに「aaa」があるけど、sub2にはない。という状況です。

しかし、表示上(PHPでの出力上)ではsub2の内容は空として表示させたい場合、どのようなSQL文を書けばいいのでしょうか?

仮に、「JOINで結合する場合、全テーブルに共通する値がないと出力されない」

というならそれで納得します。

MySQLは4.0以降でお願いします。

●質問者: kt26
●カテゴリ:ウェブ制作
✍キーワード:AAA MySQL ON PHP SELECT
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●60ポイント

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_09.htm

外部結合にすればいいですよ。

left joinを使います。

◎質問者からの返答

上記のURLを見ていたのですが、勉強不足で抜けてしまいました。

そしてleft joinを使って思い通りに出来ました。回答ありがとうございました。


2 ● ManalTencho
●10ポイント

INNER JOIN を LEFT JOIN に変えてみてはいかがでしょうか。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ