2015-07-11 57 views
1

我有以下查询:复杂串联BY串

SELECT 
    title_imdb_id, person_imdb_id, role_type_id, role_name 
FROM 
    mturk_imdbcredit 
WHERE 
    title_imdb_id=1 

这给了我:

title_imdb_id person_imdb_id role_type_id role_name 
1 1588970 Actor Herself 
1 5690 Director NULL 

我想组由title_imdb_id并串连由:分隔三个字段和由,分隔的行。最终的结果应该是:

1588970:Actor:Herself, 5690:Director: 

这是可能的SQL办?

+0

有没有总是精确地1演员和1个司长?换句话说,你是否想要2列,或者可以有任何数字(例如对于给定标题的许多演员) – Bohemian

+0

可以有很多学分 – David542

+0

@Bohemian请参阅下面的答案。它可以用group_concat完成。 – David542

回答

3

您可以使用另外一个领域CONCAT到GROUP_CONCAT

SELECT 
    GROUP_CONCAT(
     CONCAT (
      person_imdb_id, ':', role_type_id, ':', IFNULL(role_name, '') 
     ) SEPARATOR ', ' 
    ) 
FROM 
    mturk_imdbcredit 
GROUP BY 
    title_imdb_id 

这给了我:

1588970:Actor:Herself, 5690:Director: