我想从表中加入多个行值。
表名:项目
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
请求提出一些建议
答案 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
请按照以下链接查看正在运行的演示:
答案 1 :(得分:1)
您可以使用以下查询。
SELECT GROUP_CONCAT(value) FROM Item GROUP BY item_id;
答案 2 :(得分: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;
答案 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