SQL:根据行中的第一个字段将2行合并为1行

SQL: combinig 2 rows into 1 row based on the first field in row

我不擅长 sql。我查看了 Whosebug,但似乎对我没有任何用处。所以,我正在寻求帮助。是否可以根据行中的第一个字段将 2 行合并为 1 行。

我在 mysql 中这样做。我会举个例子。

这是我的查询。

SELECT `ps_product_attribute_combination`.`id_product_attribute`,`ps_attribute`.`id_attribute_group`,`ps_attribute_group_lang`.`name`,`ps_product_attribute_combination`.`id_attribute`,`ps_attribute_lang`.`name` 

FROM `ps_product_attribute_combination` 

LEFT JOIN `ps_attribute` 
ON `ps_product_attribute_combination`.`id_attribute`=`ps_attribute`.`id_attribute` 

LEFT JOIN `ps_attribute_lang` 
ON `ps_attribute`.`id_attribute`=`ps_attribute_lang`.`id_attribute` 

LEFT JOIN `ps_attribute_group_lang` 
ON `ps_attribute`.`id_attribute_group`=`ps_attribute_group_lang`.`id_attribute_group` 

WHERE `ps_attribute_lang`.`id_lang`='2' AND `ps_attribute_group_lang`.`id_lang`='2' 

ORDER BY `ps_product_attribute_combination`.`id_product_attribute` ASC, `ps_attribute`.`id_attribute_group` ASC 

这个查询的输出是。

我需要的是,基于第一个字段 id_product_attribute = 0,将第二行的所有其他信息放到第一行的末尾(没有第二行的第一个字段)

期望的最终结果应该是

我怎样才能做到这一点?我想学习。所以任何想法都是值得赞赏的。 感谢大家的转发。

sqlfiddle

SELECT id_product_attribute,
      SUBSTRING_INDEX(id_attribute_group,',',1) as id_attribute_group,
      SUBSTRING_INDEX(name,',',1) as name,
      SUBSTRING_INDEX(id_attribute,',',1) as id_attribute,
      SUBSTRING_INDEX(name2,',',1) as name2,
      SUBSTRING_INDEX(id_attribute_group,',',-1) as id_attribute_group2,
      SUBSTRING_INDEX(name,',',-1) as name3,
      SUBSTRING_INDEX(id_attribute,',',-1) as id_attribute2,
      SUBSTRING_INDEX(name2,',',-1) as name4
FROM
(SELECT id_product_attribute, 
       GROUP_CONCAT(id_attribute_group) as id_attribute_group,
       GROUP_CONCAT(name) as name,GROUP_CONCAT(id_attribute) as id_attribute,
       GROUP_CONCAT(name2) as name2
FROM T
GROUP BY id_product_attribute)T2