请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

在update中使用group by不行吗

老师,我需要求救。。这个我怎样都没想法[我用的是mysql]
图片描述
我这边写的是电商数据库, 有着sku。然后在order_detail里面就有具体记录着用户所卖的sku数量[quantity]。我想要通过group productId,将quantity全部加起来再update product默认的totalSell[sell]。但是却一直得到这个错误
图片描述
明明我通过select可以得取,但是一到update时怎样都无解了

正在回答

2回答

update语句是不支持group by子句

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕工程538969 #1
    那么如果这种情况的话我应该怎样实现呢
    回复 有任何疑惑可以回复我~ 2021-04-26 15:54:51
  • 提问者 weixin_慕工程538969 #2
    如果我想通过1个sql去实现这个逻辑的话可行吗
    回复 有任何疑惑可以回复我~ 2021-04-26 15:55:48
  • sqlercn 回复 提问者 weixin_慕工程538969 #3
    你这个语句,SET时不要使用sum(quantity)而是直接用 set p.sell = p.sell+od.qunantity 就可以了
    回复 有任何疑惑可以回复我~ 2021-04-26 15:56:13
提问者 weixin_慕工程538969 2021-04-26 16:50:14
UPDATE
    `product` AS `p`
        JOIN
        (
            SELECT
                   productId,SUM(quantity) as quantity,ANY_VALUE(orderId) as orderId
            FROM
                 `order_detail`
            WHERE
                orderId = 2
            GROUP BY
                productId
            ) `od`
        ON
            `p`.`id`=`od`.`productId`
SET
    `p`.`sell` = p.sell+od.quantity;

上面这个是我的答案。看样子是因为本来quantity是SUM然后我又重犯导致的

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信