773254968 发表于 2020-5-29 19:00:16

SQL Server多表关联更新数据

select a.id, a.name, b.id, b.name from Portrait_test2 a , Portrait_test1 b where a.id = b.id

这是查询结果
id    name   id   name
1               1        1
1               1        2
1               1        3
2               2        2
2               2        3

update a set a.name = a.name+', ' + b.name from Portrait_test2 a , Portrait_test1 b where a.id = b.id
select * from Portrait_test2
执行后:
id   name
1        , 1
2        , 2
3       

这种更新name不应该是叠加的吗?

永恒的蓝色梦想 发表于 2020-5-29 19:04:15

鱼币~

糖逗 发表于 2020-5-29 19:07:32

很奇怪,你这里查询后a的name那一列怎么是空的呢?

赚小钱 发表于 2020-5-29 21:09:44

table a.name 是 空字符串 + "," + b.name ,结果不就是 , b.name 吗。你期望是什么样子?

773254968 发表于 2020-5-30 22:38:21

期待结果是:
id   name
1      , 1, 2, 3
2      , 2, 3
3      

赚小钱 发表于 2020-5-31 23:24:00

773254968 发表于 2020-5-30 22:38
期待结果是:
id   name
1      , 1, 2, 3


google key words: sql server group by concat strings

https://stackoverflow.com/questions/273238/how-to-use-group-by-to-concatenate-strings-in-sql-server

https://sqlperformance.com/2014/08/t-sql-queries/sql-server-grouped-concatenation
页: [1]
查看完整版本: SQL Server多表关联更新数据