sql查询将可变数量的行合并为一行

时间:2015-08-23 01:36:06

标签: mysql sql

我的桌子:

people
      name      person_id 
        Joe     1 
        Jack    2 

tags   
      tag_id    tag_name 
          1     blue 
          2     green 
          3     black 
          4     red

assignments
      person_id tag_id 
          1     1 
          1     2 
          1     3 
          1     4 
          2     2 
          2     4

我想要的是以下结果:

结果

  name  tags 
  Joe   blue,green.black,red
  Jack  green,red

这里的独特之处在于,第三个表格要求我首先加入标签的名称,而不是那些连接的,而不是原始的ID ...

2 个答案:

答案 0 :(得分:3)

GROUP_CONCAT()方法与GROUP BY

结合使用
SELECT name, GROUP_CONCAT(tag_id) FROM people GROUP BY name;

对于已编辑的部分,请尝试以下操作:

SELECT p.name, GROUP_CONCAT(t.tag_name)
    FROM people p
        JOIN assignments a ON p.person_id=a.person_id
        JOIN tags t ON t.tag_id=a.tag_id
    GROUP BY a.person_id;

答案 1 :(得分:0)

function checkCitySelect(){
    $("#test2").on('click', function() {
        setMap("Haltern am See, Weseler Str. 151",14);
    });
}

我希望这可以帮助