如何使用php和mysql选择来自特定客户的所有订单?

bttbmeg0  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(348)

当我试图选择访问网站的给定客户的所有订单并将它们显示在屏幕上时遇到了一个问题。问题是返回的数组具有​​订单增加了三倍(每个订单出现三次而不是一次)。

$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次。我在网上搜索过这样的例子,但找不到任何符合我要求的例子。有人知道为什么​​是原来的三倍

5vf7fwbs

5vf7fwbs1#

你的 JOIN 不正确。这个 ON 子句需要关联两个表中的列。
既然你没有从 customers 表,在查询中根本不需要它。

SELECT orders.orderID, orders.date, products.name, products.price
FROM orders
INNER JOIN products ON orders.productID = products.productID
WHERE orders.userID = ?

如果您确实希望包含客户信息,则应该是:

SELECT customer.name, orders.orderID, orders.date, products.name, products.price
FROM orders
INNER JOIN customer ON order.userID = customer.userID
INNER JOIN products ON orders.productID = products.productID
WHERE customer.userID = ?
hwazgwia

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订购;

相关问题