下記のSQL文をもっと簡単に記述する方法はありませんか?
うまく説明することが出来ないのですが、理解していただいた方がいたら解説などをいれてお願いします。
//SQL文の記述
$sql = "";
$sql .= "SELECT
DISTINCT tb1.f1 AS f1,
tb1.f2 AS f2,
tb1.f3 AS f3,
tb1.f4 AS f4,
tb2.f1 AS f5,
tb2.f2 AS f5
FROM tb1 LEFT OUTER JOIN tb2 ON tb1.f1=tb2.f1
WHERE tb1.f2 = '$hensu' OR tb1.f3 = '$hensu' OR tb1.f4 = '$hensu'";
$rs = mysql_query( $sql, $conn );
while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC )){
print <<<_EOT_
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr><td><h1>{$rec["f5"]}</h1></td></tr>
_EOT_;
//SQL文の記述
$sql = "";
$sql .= "SELECT*";
$sql .= " FROM tb1";
$sql .= " WHERE (f2 = '$hensu' OR f3 = '$hensu' OR f4 = '$hensu') and f1 = '$rec[f1]'";
$rs2 = mysql_query( $sql, $conn );
while( $rec2 = mysql_fetch_array( $rs2, MYSQL_ASSOC )){
print "<tr><td bgcolor="#FFFFFF">{$rec2["f5"]}<td></tr>";
}
print "</td></tr></table>";
}
質問に質問で返してしまいますが。
とりあえず、
・tb1 と tb2 のDDL
・使用している MySQL のバージョン。
・何回か出現している $hensu という変数はすべての場所で同一の値でよいのかどうか。
を確認させてください。
あと、できれば何のデータをどのように表示したいのかサンプルを提示していただけるとはっきりとした答えが出やすいかと思います。