这样的sql查询语句怎么写 来看看

这样的sql查询语句如何写 高手进来看看a表1 语文2 数学3 英语4 物理b表1 1,22 2,33 3,4想查询出来的结果是

这样的sql查询语句如何写 高手进来看看
a表
1 语文
2 数学
3 英语
4 物理
b表
1 1,2
2 2,3
3 3,4
想查询出来的结果是这样 
1  语文,数学
2  数学,英语
3  英文,物理
高手指点指点


select id,stuff((select ','+name from a where charindex(','+rtrim(a.id)+',',','+replace(b.txt,',',',')+',')>0 for xml path('')),1,1,'')txt from b