使用连接连接多个值

时间:2017-02-19 20:20:39

标签: sql sql-server

我有3张表格如下

JobPost_Master1_UT

JobPost_ID  JobPost_Name
-----------  -----------
1            .Net Developer
2            Java Developer

Skillset_Master_UT

Skill_ID     SkillName 
-----------  -----------
1            Javascript
2            Bootstrap
3            HTML
4            .Net MVC
5            JSP

JobPost_Skill

JobPost_ID  Skill_ID     
-----------  -----------
1             1
1             2
1             3
2             3
2             5

我想要这个结果

JobPost_ID   SkillName
-----------  -----------
1            Javascript,Bootstrap,HTML
2            HTML,JSP

我正在尝试这个

DECLARE @SkillName VARCHAR(1000)
SELECT @SkillName = COALESCE(@SkillName ,'') + SkillName + ',' 
FROM JobPost_Skill
     left outer join Skillset_Master_UT
          on Skillset_Master_UT.Skill_ID =JobPost_Skill.Skillset_ID
     left outer join JobPost_Master1_UT
          on JobPost_Skill.JobPost_ID =JobPost_Master1_UT.JobPost_ID
group by JobPost_Master1_UT.JobPost_ID, @SkillName

但它给了我以下结果

SkillName
-----------
1  Javascript,Bootstrap,HTML,HTML,JSP

1 个答案:

答案 0 :(得分:0)

您必须使用以下

之类的查询
SELECT JobPost_ID , STUFF((SELECT ',' + T1.Skillname
                           FROM  Skillset_Master_UT T1 INNER JOIN 
                                  JobPost_Skill T2 ON T1.Skill_ID = T2.Skill_ID
                            WHERE T2.JobPost_ID = TBL.JobPost_ID
                            FOR XML PATH('')),1,1,'') as Skillname
FROM JobPost_Master1_UT TBL