gpt4 book ai didi

mysql 将每行中的多个列合并为每行中的单个列

转载 作者:行者123 更新时间:2023-11-29 19:31:31 28 4
gpt4 key购买 nike

我有一个表(图片#1),其中有另一个表的外键。该表仅包含其他表的 FK/Id,有 5 列。可能并不总是有一个值,所以如果没有,我插入一个 -1,这是在 datagridview vb.net 中完成的。每个 id 都有一个关联的名称。那么,在带有 FK 的表(图 #1)中,是否有一种方法可以查询每个 id 的名称,然后将每一行连接/连接到一列中?我能够进行查询并分别返回每个名称(图 #2),但不太清楚如何加入所有 5 个名称。我对这一切都很陌生,所以请告诉我我是否离开了我和我的摇杆需要采取不同的方法。谢谢。

SELECT 
s.id,
g1.name as Grade1_name,
g2.name as Grade2_name,
g3.name as Grade3_name,
g4.name as Grade4_name,
g5.name as Grade5_name,
s.Grades_Name
FROM
sort s
LEFT OUTER JOIN
grades g1 ON g1.id = s.grade_id_1
LEFT OUTER JOIN
grades g2 ON g2.id = s.grade_id_2
LEFT OUTER JOIN
grades g3 ON g3.id = s.grade_id_3
LEFT OUTER JOIN
grades g4 ON g4.id = s.grade_id_4
LEFT OUTER JOIN
grades g5 ON g5.id = s.grade_id_5

pic #1 pic #2

最佳答案

我能够让它与此一起工作。不确定这是否是好的代码,但它满足了我的需要。

SELECT 
s.id,
CONCAT_WS(", ", g1.name, g2.name, g3.name, g4.name, g5.name) AS GradeNames
FROM
sort s
LEFT OUTER JOIN
grades g1 ON g1.id = s.grade_id_1
LEFT OUTER JOIN
grades g2 ON g2.id = s.grade_id_2
LEFT OUTER JOIN
grades g3 ON g3.id = s.grade_id_3
LEFT OUTER JOIN
grades g4 ON g4.id = s.grade_id_4
LEFT OUTER JOIN
grades g5 ON g5.id = s.grade_id_5

关于mysql 将每行中的多个列合并为每行中的单个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41748191/

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