use Tempdb
go
--> -->
if not object_id(N'Tempdb..#A') is null
drop table #A
Go
Create table #A([id] int,[name] nvarchar(4))
Insert #A
select 1,N'tom' union all
select 2,N'jack' union all
select 3,N'bone'
Go
if not object_id(N'Tempdb..#B') is null
drop table #B
Go
Create table #B([id] int,[address] nvarchar(8))
Insert #B
select 1,N'beijing' union all
select 1,N'shanghai' union all
select 1,N'tianjin' union all
select 2,N'beijing' union all
select 2,N'chengdu' union all
select 3,N'liaoning' union all
select 3,N'shanghai' union all
select 3,N'nanjing'
Go
select Name, address=stuff((select ','+address from #B where ID=a.ID for xml path('')),1,1,'') from #A AS a
/*
Name address
tom beijing,shanghai,tianjin
jack beijing,chengdu
bone liaoning,shanghai,nanjing
*/
go
--> -->
if not object_id(N'Tempdb..#A') is null
drop table #A
Go
Create table #A([id] int,[name] nvarchar(4))
Insert #A
select 1,N'tom' union all
select 2,N'jack' union all
select 3,N'bone'
Go
if not object_id(N'Tempdb..#B') is null
drop table #B
Go
Create table #B([id] int,[address] nvarchar(8))
Insert #B
select 1,N'beijing' union all
select 1,N'shanghai' union all
select 1,N'tianjin' union all
select 2,N'beijing' union all
select 2,N'chengdu' union all
select 3,N'liaoning' union all
select 3,N'shanghai' union all
select 3,N'nanjing'
Go
select Name, address=stuff((select ','+address from #B where ID=a.ID for xml path('')),1,1,'') from #A AS a
/*
Name address
tom beijing,shanghai,tianjin
jack beijing,chengdu
bone liaoning,shanghai,nanjing
*/