mysql用CONCAT从另一个表更新表列



我试图找出如何执行SQL UPDATE表列从表A到表B的问题是试图连接多个值从表A列X到表B列Y

为多结构id |兴趣1 |保龄球2 |游泳1 |篮球

表b结构id | Interest_new1 | null2 | null

我希望表B有以下数据

表bid | Interest_new保龄球、篮球2 |游泳

这是我的尝试与SQL查询,但它不连接,只是更新表B与第一个匹配

UPDATE TableB 
INNER JOIN TableA ON TableB.id= TableA.id
SET TableB.id=CONCAT(TableA.id, ',')
where TableA.id= TableB.id;

您可能打算在这里使用GROUP_CONCAT,因为您想要聚合CSV输出:

UPDATE TableB b
INNER JOIN
(
SELECT id, GROUP_CONCAT(Interest ORDER BY id) Interests
FROM TableA
GROUP BY id
) a
ON a.id = b.id
SET
Interest_new = a.Interests;
然而,我实际上主张甚至不这样做,因为在SQL表中存储CSV通常是一个坏主意。考虑只创建这个数据的视图:
CREATE VIEW newInterests AS
SELECT id, GROUP_CONCAT(Interest ORDER BY id) Interests
FROM TableA
GROUP BY id;

最新更新