gpt4 book ai didi

mysql - 连接数据 - 行到列?

转载 作者:行者123 更新时间:2023-11-29 20:56:23 25 4
gpt4 key购买 nike

我是菜鸟,请帮助我。

表1

id, options1, options2, options3
-----------------------------------------
1, 'a', 'b', 'c'
2, 'x', 'b', 'c'
3, 'c', 'b', 'd'
4, 'z', 'b', 'c'

表2

id, productid, name
-------------------
1, 1, "Title"
2, 1, "Color"
3, 2, "Title"
4, 3, "Title"
5, 4, "Title"
6, 4, "Color"
7, 4, "Size"

//product_id 的不同行数(min=0 和 max=3)

获取方式:表3

productid, new_name
--------------------
1, "Title a; Color b; c"
2, "Title x; b; c"
3, "Title c; b, d"
4, "Title z; Color b; Size c"

最佳答案

好吧,我会发表评论,但我没有声誉点,但我想帮助你。

您的架构有点错误。这些表应该可以通过 ID 或 ProductID 连接。如果您运行以下查询,您会注意到这些查询不会产生您想要的结果,并且无法将表 1 中的选项附加到表 2 中的产品:

select table2.productid, * from table1 
full outer join table2 on table1.id = table2.id

select table2.productid, * from table1 
full outer join table2 on table1.id = table2.productid

您可以更正表 2:

table2
productid
id
value1 as nullable
value2 as nullable
value3 as nullable

由于我的数据库中没有这些表,所以我即时破解了该表:

select 1 as id , 1 as productid , 'Title' as value1,'Color' as value2, null as value3  union
select 2 as id , 2 as productid , 'Title' as value1, null , null union
select 3 as id , 3 as productid , 'Title' as value1, null , null union
select 4 as id , 4 as productid , 'Title' as value1, 'Color' as value2, 'Size' as value3

这样您的选项就可以与它们的值相匹配:

select 
value1, options1,
value2, options2,
value3, options3
from table1 join table2 on table1.id=table2.id

这可以进一步细化为

select 
productid,
coalesce(value1,'') +' '+ coalesce(options1,'') + '; ' +
coalesce(value2,'')+' '+ coalesce(options2,'') +'; '+
coalesce(value3,'')+' '+ coalesce(options3,'') as new_name
from #tb3 join #tb1 on #tb3.id=#tb1.id

这会产生您需要的结果:

productid   new_name
----------- ------------------------
1 Title a; Color b; c
2 Title x; b; c
3 Title c; b; d
4 Title z; Color b; Size c

但是,更好的方法是创建另一个具有单独选项的表,并且在该表中您可以有 1 个或多个选项(超过 3 个)

如果这对您有用,请标记答案。谢谢

关于mysql - 连接数据 - 行到列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37597423/

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