使用mysql将行连接在一起

时间:2016-02-25 05:12:40

标签: php mysql

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

表名:项目

    ID |            item_id |     Value
    1               43          item1
    2               44          item2
    3               44          item3
    4               44          item4
    5               45          item5
    6               45          item6

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

请求提出一些建议

4 个答案:

答案 0 :(得分:2)

尝试此查询:

SELECT t1.ID, t1.item_id, t2.Value
FROM item t1
INNER JOIN
(
    SELECT item_id, GROUP_CONCAT(Value) AS Value
    FROM item
    GROUP BY item_id
) t2
    ON t1.item_id = t2.item_id

请按照以下链接查看正在运行的演示:

SQLFiddle

答案 1 :(得分:1)

您可以使用以下查询。

SELECT GROUP_CONCAT(value) FROM Item GROUP BY item_id;

答案 2 :(得分:0)

您可以将self joingroup_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;

答案 3 :(得分:0)

尝试此查询

  SELECT t1.ID, t1.item_id,
      (
        SELECT GROUP_CONCAT(t2.Value) FROM item AS t2
        WHERE t1.item_id = t2.item_id
        GROUP BY t2.item_id
      ) AS Value
 FROM item AS t1

演示http://sqlfiddle.com/#!9/bbc20/18/0