![](/img/trans.png)
[英]merge two rows with same id but different column values into one row [mysql]
[英]SQL Merge two rows with same ID but different column values
当它们具有相同的 id 但不同的列值时,我试图将它们合并为一个。
(table1)
id colour
1 red
1 blue
2 green
2 red
我希望将其结合起来,以便结果是:
id colour1 colour2
1 red blue
2 green red
colors的数量没有限制。 它的范围取决于 id。
任何帮助,将不胜感激。 提前致谢。
这适用于您的具体示例
select left(colours,locate(',',colours)-1) as colour1, right(colours, length(colours)- locate(',',colours)) as colour2 from (select id, group_concat(colour) as colours from table1 group by id) concatenation
不是很一般或健壮。
如果一组值(颜色)是固定的,我更喜欢 pivot 像这样:
select id, sum(RED) as RED, sum(GREEN) as GREEN, sum(BLUE) as BLUE from (select id, colour='red' as RED, colour='green' as GREEN, colour='blue' as BLUE from table1) coded group by id;
但这不是您要求的 output 格式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.