MySQL5の複数ジョイントの質問です。

以下の3つのテーブルをジョイントし、temp_arrayという配列を作りたいのですがSQL文はどのように書けばいいでしょうか?
log_tblのi_idとu_idは、item_tblとuser_tblに存在するはずですが、万が一にもデータが欠けていた場合nullを挿入したいと思います。。
よろしくお願いしますm(_ _)m
また、作りたい配列は文字数の都合でコメントに記しました。

テーブル名:log_tbl(pkey t_id)
t_id, i_id, u_id
1, 203, 45
2, 12, 24
3, 47, 3
4, 3, 45
5, 12, 24
6, 47, 3
7, 14, 13
.....

テーブル名:item_tbl(pkey i_id)
i_id, i_name
1, fff
2, kkk
12, bbbbb
13, mmm
14, ccccc
47, hhhhh
203, sssss
....

テーブル名:user_tbl(pkey u_id)
u_id, u_name
1, taro
2, yamada
3, sato
24, kawakita
45, hoge
.....

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2011/04/15 21:40:16
  • 終了:2011/04/16 20:59:21

ベストアンサー

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492011/04/15 22:32:48

ポイント60pt

SQLとしては下記のような具合

SELECT a.t_id, a.i_id, b.i_name, a.u_id, c.u_name
FROM log_tbl a
LEFT JOIN item_tbl b ON b.i_id = a.i_id
LEFT JOIN user_tbl c ON c.u_id = a.u_id

上記SQLの結果をphpの配列に入れるのであれば下記のような具合

$temp_array = array();
$sql='省略';
$result = mysql_query($sql) or dir('SQL実行に失敗');
while ($row = mysql_fetch_array($result)) {
    array_push($temp_array, $row);
}
id:seadwell

ご回答ありがとうございます。

無事動作を確認いたしました。

前回もご回答いただきました。

http://q.hatena.ne.jp/1301731001

おかげで、ジョイントの考え方がなんとなくですがイメージできた気がしています。

LEFT JOIN だけですが・・・。

ありがとうございました。

2011/04/16 20:58:45
  • id:seadwell
    作りたい配列:temp_array
    array(
      [0] => Array ( [t_id] => 1 [i_id] => 203 [i_name] =>sssss [u_id] => 45 [u_name] => hoge )
      [0] => Array ( [t_id] => 2 [i_id] => 12 [i_name] =>bbbbb [u_id] => 24 [u_name] => kawakita )
      [0] => Array ( [t_id] => 3 [i_id] => 47 [i_name] =>hhhhh [u_id] => 3 [u_name] => sato )
      [0] => Array ( [t_id] => 4 [i_id] => 3 [i_name] =>NULL [u_id] => 45 [u_name] => hoge )
      [0] => Array ( [t_id] => 5 [i_id] => 12 [i_name] =>bbbbb [u_id] => 24 [u_name] => kawakita )
      [0] => Array ( [t_id] => 6 [i_id] => 47 [i_name] =>hhhhh [u_id] => 3 [u_name] => sato )
      [0] => Array ( [t_id] => 7 [i_id] => 14 [i_name] =>ccccc [u_id] => 13 [u_name] =>NULL ))

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません