我正在运行这个查询
$sql6 = "SELECT RECIPE.Price, RECIPE.Name FROM ORDERRECI, ORDERS, RECIPE WHERE ORDERRECI.OrderID = $orderID AND ORDERRECI.RecipeID = RECIPE.RecipeID";
$results = mysqli_query($con, $sql6);
while ($row=mysqli_fetch_assoc($results))
{
$calcC+= $row['Price'];
echo $calcC.$row['Name']."<br />";
}
return $calcC;
查询运行良好,我得到了正确的值,但我得到了 9 次。(我通过回显检查)。我检查了数据库,它们只在那里一次。我尝试使用 Distinct 但因为客户可以多次选择同一面,他们会得到不准确的结果(经过测试。任何人都可以解释为什么。会使用 join 帮助。我的老师喜欢 where(不知道为什么)但这就是我使用的原因它
编辑:
我的 Recipe 和 Orders 是多对多的关系,ORDERRECI 是引用表。我正在尝试计算订单的总成本。我刚刚尝试了 inner join 但它仍然重复,这次它重复了 14 次
最佳答案
FROM ORDERRECI, ORDERS, RECIPE
在这里,您正在对 3 个表进行笛卡尔积,这意味着,每个表中的每一行都将与 FROM
中每个其他表中的每一行配对。列表。我不知道您的查询目标是什么,但这就是正在发生的事情。
关于PHP/MySQL 从选择中复制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23597196/