gpt4 book ai didi

mysql - 如何避免左连接表显示重复行?

转载 作者:行者123 更新时间:2023-11-29 06:50:57 25 4
gpt4 key购买 nike

我在尝试汇总数量时遇到查询问题。

此购物车商品表存储了 id_cart 和 id 产品

enter image description here

该订单表存储了id_cart,也可能包含其他id,例如供应商。该表用于跟踪订单记录并向供应商发送通知。

enter image description here

结果错误。预期输出 = 1, 1, 1

enter image description here

SELECT  id, id_product, SUM(qty) 
from cart_item
left join Orderp using(id_cart)
group by id_product

http://sqlfiddle.com/#!9/07bf57/1

订单表中的 id_cart 重复导致的问题。我该如何处理这个问题?有什么解决办法让它发挥作用吗?谢谢。

最佳答案

您的数据或数据模型有问题

INSERT INTO OrderP(`id_order`,`id_cart`)VALUES(1, 1);
INSERT INTO OrderP(`id_order`,`id_cart`)VALUES(2, 1);

id_cart = 1 有 2 行,因此当将 cart_item 连接到 orderp 时,“自然连接”会将每一行加倍。

在 orderp 中使用到不同列的内部联接效果更好,因为现在 orederp 中每个 cart_item 只有一行。

SELECT id_product, sum(qty)
from cart_item ci
left join Orderp o on ci.id_cart = o.id_order
GROUP BY id_product

http://sqlfiddle.com/#!9/07bf57/13

关于mysql - 如何避免左连接表显示重复行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47547531/

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