MySQL+PHPで、サイトを制作しているのですが、データの表示の仕方で悩んでいます。


MySQLの group by と join を一緒に使う時はどの様に記述すればよいのでしょうか?

現在は、下記の様にしています。

$sql = "";
$sql .= "select f1";
$sql .= " from tb1 group by f1;
$rs = mysql_query( $sql, $conn );

while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC )){

$sql = "";
$sql .= "select tb1.f1 AS t1f1,tb2.f1 AS t2f1,tb2.f2 AS t2f2";
$sql .= " from tb1 left outer join tb2 on tb.f1 = tb2f1";
$rs = mysql_query( $sql, $conn );

while( $rec = mysql_fetch_array( $rs )){ print $rec["t2f2"]."<br>"; }

}

のような感じで表示してますが、もっと簡単に記述する方法はありませんか?
うまく説明することが出来ないのですが、理解していただいた方がいたら解説などをいれてお願いします。

回答の条件
  • 1人50回まで
  • 登録:
  • 終了:2006/08/09 17:35:37
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:ito-yu No.1

回答回数323ベストアンサー獲得回数14

ポイント100pt

とりあえず、書いてあるSQL/スクリプトはどう考えても間違っている(外のwhileで使っている$recを内のwhileで上書きしてる、他にもtypoがありそう)様に見えるので、黙って以下のSQLを使って見てください。

SELECT DISTINCT tb1.f1 AS t1f1,tb2.f1 AS t2f1,tb2.f2 AS t2f2 FROM tb1 LEFT OUTER JOIN tb2 ON tb1.f1=tb2.f1;

もとのスクリプトだとなんのためにwhileが2重になってるのかわかりません

id:black_kenchan

一発で、出来ました。

本当に有難うございます。

2006/08/09 17:35:18

コメントはまだありません

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

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

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

回答リクエストを送信したユーザーはいません