Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql使用CONCAT从另一个表更新表列_Mysql_Concatenation - Fatal编程技术网

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

mysql使用CONCAT从另一个表更新表列,mysql,concatenation,Mysql,Concatenation,我正在尝试解决如何执行从表A到表B的SQL更新表列。我遇到的问题是试图将表A列X中的多个值合并到表B列Y中 表结构 id |利息 1 |保龄球 2 |游泳 1 |篮球 表B结构 id |兴趣|新 1 |空 2 |零 我希望表B有以下数据 表B id |兴趣|新 保龄球、篮球 2 |游泳 这是我对SQL查询的尝试,但它没有成功,只是用第一个匹配项更新了表B UPDATE TableB INNER JOIN TableA ON TableB.id= TableA.id SET TableB

我正在尝试解决如何执行从表A到表B的SQL更新表列。我遇到的问题是试图将表A列X中的多个值合并到表B列Y中

表结构 id |利息 1 |保龄球 2 |游泳 1 |篮球

表B结构 id |兴趣|新 1 |空 2 |零

我希望表B有以下数据

表B id |兴趣|新 保龄球、篮球 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输出:

更新表b 内连接 选择id,按id兴趣分组\u兴趣顺序 从表格 按id分组 A. 在a.id=b.id上 设置 利息=新利息; 然而,我实际上甚至主张不要这样做,因为在SQL表中存储CSV通常是个坏主意。考虑一下只需查看一下这个数据:

创建查看新兴趣作为 选择id,按id兴趣分组\u兴趣顺序 从表格 按id分组;
太好了,谢谢@user3312251欢迎使用堆栈溢出。如果这个答案帮助你解决你的问题,那么请考虑接受它,点击左边的绿色复选标记。你这样做也会得到绿点!