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>"; }
}
のような感じで表示してますが、もっと簡単に記述する方法はありませんか?
うまく説明することが出来ないのですが、理解していただいた方がいたら解説などをいれてお願いします。
とりあえず、書いてある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重になってるのかわかりません
一発で、出来ました。
本当に有難うございます。