当我试图选择访问网站的给定客户的所有订单并将它们显示在屏幕上时遇到了一个问题。问题是返回的数组具有订单增加了三倍(每个订单出现三次而不是一次)。
$query = "SELECT orders.orderID, orders.date, products.name, products.price
FROM ((orders
INNER JOIN customers ON orders.userID = ?)
INNER JOIN products ON orders.productID = products.productID)";
$stm = $pdo->prepare($query);
$stm->execute([$_SESSION['id']]); // The ID of the customer using the website
$orders_array = $stm->fetchAll(PDO::FETCH_ASSOC);
我的数据库有一个customers表、一个products表和一个orders表。我希望关联数组具有订单id、产品名称、订单日期和价格,实际上,所有这些都将被返回。但是,每个订单将选择3次。我在网上搜索过这样的例子,但找不到任何符合我要求的例子。有人知道为什么是原来的三倍
2条答案
按热度按时间5vf7fwbs1#
你的
JOIN
不正确。这个ON
子句需要关联两个表中的列。既然你没有从
customers
表,在查询中根本不需要它。如果您确实希望包含客户信息,则应该是:
hwazgwia2#
按nama\ U客户从客户订单中选择*;
从客户订单中选择由nama\ U customer desc;
由jumlah\u pasok从pasok order中选择;
按jumlah\u pasok desc从pasok order中选择*;
从供应商中选择*,其中nama_供应商与“%tron”不同;
选择from customer,其中kode_customer='j-001'或kode_customer='b-002';
从客户中选择from customer where kode_customer in('j-001','b-002');
从客户中选择nama\u customer,其中kode\u customer in('j-001','b-002')按nama\u customer订购;