From 3676b41f330c58355e94b582512a5448df647f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E4=BF=8A=E6=88=90?= Date: Wed, 20 Sep 2023 16:37:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E5=88=97=E8=A1=A8sku?= =?UTF-8?q?=E4=BB=B7=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/models/mall.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/admin/models/mall.go b/app/admin/models/mall.go index 0b8525d..7137030 100644 --- a/app/admin/models/mall.go +++ b/app/admin/models/mall.go @@ -1403,8 +1403,18 @@ func (o *GoodsOrder) SetDeliverStore() error { func GetGoodsFirstSkuCombo(goodsId []uint32) []GoodsAttributeCombo { var list []GoodsAttributeCombo + //查询每个商品按sort字端排序的最大的一个sku的价格 err := orm.Eloquent. - Raw("SELECT b.* FROM goods_attribute AS a INNER JOIN goods_attribute_combo b ON a.goods_id = b.goods_id where a.goods_id in (?) GROUP BY b.goods_id", goodsId). + Raw(` +SELECT b.* +FROM (SELECT id + FROM goods_attribute d + INNER JOIN (SELECT goods_id, MAX(sort) AS max_sort FROM goods_attribute GROUP BY goods_id) c + ON c.goods_id = d.goods_id AND c.max_sort = d.sort) AS a + INNER JOIN goods_attribute_combo b ON a.id = b.goods_attribute_id +WHERE b.goods_id IN (?) +GROUP BY b.goods_id + `, goodsId). Scan(&list). Error if err != nil {