gpt4 book ai didi

php mysql 使用 join 从 2 个表中显示/获取按 ORDER_DATE 分组的客户订购的所有产品

转载 作者:行者123 更新时间:2023-12-01 00:11:41 25 4
gpt4 key购买 nike

我有这两个表 CARTORDERS。我想显示/获取按 ORDER_DATE 分组的客户订购的所有产品,如何通过加入这两个表来实现?或者它的正确代码、脚本或语法是什么。这是一个 1:n 关系,我还想显示客户订购的商品,ORDERED BY order_date..

CART 表格:

  • 购物车编号
  • 产品编号
  • 用户编号
  • 产品名称
  • 价格
  • 数量
  • 图片

ORDER 表:

  • 订单编号
  • 购物车编号
  • 用户编号
  • 总计
  • 客户姓名
  • 订购日期

最佳答案

如果您希望按订单日期(未分组)列出所有订购的商品,则如下所示:

SELECT * 
FROM `order`
LEFT JOIN cart ON cart.cart_id=`order`.cart_id
ORDER BY order_date ASC

或:

SELECT * 
FROM cart
LEFT JOIN `order` ON `order`.cart_id=cart.cart_id
ORDER BY order_date ASC

从结构上看,购物车似乎可以包含多个订单(而订单不能包含更多购物车)——这就是您必须告诉我们的地方,它是(这两个表的)1:n 关系还是 1: 1(在这种情况下,您不需要 cart_id,可以使用 order_id 作为两个表中的链接元素)

如果你想对它进行某种程度的“分组”,那么你将不得不牺牲细节(将被分组在一起)分组是有用的,如果你想查看所有订单的总值(value) - 但这样做,您只会看到总值(value),而不会看到每个订单中的商品(不是在逐行 View 中)

编辑:
[抱歉我忘了..这是一对一的关系..我还需要显示每个客户订购的商品..这可能吗? :)]

在那种情况下,假设主表是“顺序”,那么结构似乎不太合理,那么带有详细信息的表应该包含对主表的引用:

购物车表:

  • 购物车编号
  • order_id (已添加)
  • 产品编号
  • 用户编号
  • 产品名称
  • 价格
  • 数量
  • 图片

订单表:

  • 订单编号
  • cart_id (已删除)
  • 用户编号
  • 总计
  • 客户姓名
  • 订购日期

同样,您的问题不是很清楚。你想看到用户购买的元素按元素分组吗(也就是说,如果他们今天买铅笔,明天买橡皮,后天买另一支铅笔,你会看到两行类似的结果:

item   | qty
-------+----
pencil | 2
rubber | 1

然后使用:

SELECT `order`.*, product_id, product_name, SUM(quantity) AS qty 
FROM `order`
LEFT JOIN cart ON cart.order_id=`order`.order_id
GROUP BY product_id
ORDER BY product_name

关于php mysql 使用 join 从 2 个表中显示/获取按 ORDER_DATE 分组的客户订购的所有产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15439783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com