gpt4 book ai didi

MySQL 对不同的行进行分组以创建组和简单产品

转载 作者:行者123 更新时间:2023-11-29 02:40:17 25 4
gpt4 key购买 nike

我正在将产品从一个系统迁移到 Magento,旧系统中存在组/子产品关系,我必须在 Magento 系统中维护

我目前的表结构:

[id],   [sku],  [name],         [parent id]
202182 |240330 |parent product |
202183 |240331 |child product 1|[202182][Parent-Product-240330]
202184 |240332 |child product 2|[202182][Parent-Product-240330]

我想要实现的目标:

[id],   [sku],   [name],         [product_type], [associated_sku]
202182 |240330 | parent product |grouped |240331=0.0000,240332=0.0000
202183 |240331 | child product 1|simple |
202184 |240332 | child product 2|simple |

你能帮我写一个查询来实现它吗?

最佳答案

如果层次结构只有两层,则完全可以在 MySQL 5.6 中实现,所以你现在就很好(如果层数可变,则需要 MySQL 8.x)。

我将使用的查询是:

select 
p.id,
p.sku,
p.name,
'grouped' as product_type,
group_concat (concat(c.id, '=0.0000') order by c.id) as associated_sku
from product p
join product c on c.parent_id = p.id
group by p.id, p.sku, p.name
union all
select
id,
sku,
name,
'simple' as product_type,
null as associated_sku
from product
where parent_id is not null

注意:此查询假定 parent_id 的值在父行上为空。

关于MySQL 对不同的行进行分组以创建组和简单产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54120302/

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