私はインボイススクリプトを作成していますが、私のクエリは、私がそれらをフェッチするときに、私のエントリが複数回返されています。Mysql duplecating結果
これは私のコードです:
$query = " SELECT d.Quantity, d.ProductID, p.ProductName, d.UnitPrice, d.Discount
FROM customers AS c, orders AS o, order_details AS d, products AS p
WHERE o.OrderID = '10248'
AND o.OrderID = d.OrderID
AND d.ProductID = p.ProductID
";
$result = mysql_query($query);
$table = '';
while($row = mysql_fetch_assoc($result)){
$table .= '<tr>';
$table .= '<td>' . $row['Quantity'] . '</td>';
$table .= '<td>' . $row['ProductID'] . '</td>';
$table .= '<td>' . $row['ProductName'] . '</td>';
$table .= '<td>' . $row['UnitPrice'] . '</td>';
$table .= '<td>' . $row['Discount'] . '</td>';
$table .= '<td>' . (100 - $row['Discount'])/100 * $row['UnitPrice'] . '</td>';
$table .= '</tr>';
}
これは、それが返すものの一部です。
Quantity ProductID ProductName UnitPrice Discount Subtotal
12 11 Queso Cabrales 14.0000 0 14
10 42 Singaporean Hokkien Fried Mee 9.8000 0 9.8
5 72 Mozzarella di Giovanni 34.8000 0 34.8
12 11 Queso Cabrales 14.0000 0 14
10 42 Singaporean Hokkien Fried Mee 9.8000 0 9.8
5 72 Mozzarella di Giovanni 34.8000 0 34.8
12 11 Queso Cabrales 14.0000 0 14
10 42 Singaporean Hokkien Fried Mee 9.8000 0 9.8
5 72 Mozzarella di Giovanni 34.8000 0 34.8
12 11 Queso Cabrales 14.0000 0 14
10 42 Singaporean Hokkien Fried Mee 9.8000 0 9.8
5 72 Mozzarella di Giovanni 34.8000 0 34.8
ただし、3つのエントリしか返されません。
anny toughts?
複数のテーブルを結合する方法を学びます。結合の実行方法はさまざまですが、各要素を相互に組み合わせたり(クロステーブルまたはクロス結合、欠落した結合のデカルト結合)、その理由がありますその多くの結果。 [Using MySQL、Joins](http://www.keithjbrown.co.uk/vworks/mysql/mysql_p5.php) – hakre