使用mysql将行连接在一起

use*_*092 5 php mysql

我想从表中加入多个行值.

表名:项目

    ID |            item_id |     Value
    1               43          item1
    2               44          item2
    3               44          item3
    4               44          item4
    5               45          item5
    6               45          item6
Run Code Online (Sandbox Code Playgroud)

ID是唯一的(主键)我想要输出的是一个mysql查询是给出这个输出的东西,如下所示

输出:

  ID |            item_id |     Value
    1               43          item1
    2               44          item2,item3,item4
    3               44          item2,item3,item4
    4               44          item2,item3,item4
    5               45          item5,item6
    6               45          item5,item6
Run Code Online (Sandbox Code Playgroud)

请求提出一些建议

Vip*_*ain 0

您可以self join与子查询一起使用group_concat

SELECT    i.ID, i.item_id, subquery.`new_value` as value
FROM item i 
JOIN (
    SELECT item_id, GROUP_CONCAT(`Value`) as new_value
    FROM item 
    GROUP BY item_id;
)as subquery 
ON  subquery.item_id = i.item_id;
Run Code Online (Sandbox Code Playgroud)