1

3 つのテーブルに対して JOIN クエリを作成することができ、結果をエコー テーブルに正常に出力できます。コードは次のとおりです。

<?php 

$sql="SELECT a.product_id, a.Options_id, b.product_name, b.product_price, c.Options_name, c.Price_diff
FROM ProductOptions a
JOIN Products b ON a.product_id = b.product_id
JOIN Options c ON a.Options_id = c.Options_id
ORDER BY product_name DESC";

$result = mysql_query($sql);

if (!$result)

{

echo "An error occurred ".mysql_error();

exit;

}

echo "<table border=1>\n<tr><th></th><th bgcolor=\"#DFE8EC\">Name</th><th>Flavors & Size</th><th bgcolor=\"#DFE8EC\">Price</th><th>Price Difference</th><th bgcolor=\"#DFE8EC\"></th></tr>\n";

while ($line = mysql_fetch_array($result)) {


$name = $line["product_name"];

$price = $line["product_price"];

$options=$line["Options_name"];

$difference=$line["Price_diff"];


echo "<tr><td></td><td bgcolor=\"#DFE8EC\">$name</td><td>$options</td> <td bgcolor=\"#DFE8EC\">£$price</td><td>£$difference</td><td bgcolor=\"#DFE8EC\"></td></tr>\n";

}

echo "</table>\n";

?>

私のテーブルは機能しますが、重複したエントリが表示さproduct_nameれ、それらを削除する方法がわかりません。

4

1 に答える 1

1

次のように、クエリでGROUP BY句を使用する必要があります。

$sql = "SELECT a.product_id, a.Options_id, b.product_name, b.product_price, c.Options_name, c.Price_diff
        FROM ProductOptions a
        JOIN Products b ON a.product_id = b.product_id
        JOIN Options c ON a.Options_id = c.Options_id
        GROUP BY product_name
        ORDER BY product_name DESC";
于 2013-04-18T20:02:26.430 に答える