2017-07-14 86 views
0

我有2个表格:Artist和play_store。艺术家表有2列id(PK),名称。 play_store表有列:id(pk),title,artist_id( - >艺术家表pk的外键)。MySql加入具有不同记录的列中的重复值

艺术家表

id | name 
1 | ArtistA 
2 | ArtistB 
3 | ArtistC 
4 | ArtistD 

play_store表

id | title | artist_id 
1 | TitleA | 1 
2 | TitleB | 2 
3 | TitleA | 2  
4 | TitleC | 3 
5 | TitleC | 4  

在上述play_store表,重复的标题是可用具有不同artist_id秒。我想省略这些重复标题,但需要在响应列中包含所有不同的artist_id。预期的结果应该如下。

id | title | artist_id 
1 | TitleA | 1,2 
2 | TitleB | 2 
3 | TitleC | 3,4 

任何人都可以让我知道如何加入重复的值转换成一列,但仍然有重复的记录?

回答

1

您可以使用此:

SELECT title, group_concat(artist_id) as artist_ids 
FROM `play_store` 
GROUP BY title 

注意,有没有id列因为这是不存在的group by,不应该被选中。如果你想要一个“计数器”,

SET @counter = 0; 
SELECT 
    (@counter := @counter +1) as counter, 
    title, 
    group_concat(artist_id) as artist_ids 
FROM `play_store` 
GROUP BY title 
相关问题