2017-07-14 7 views
0

私は2つのテーブルを持っています:Artistとplay_store。アーティストテーブルには、ID(PK)、名前の2つの列があります。 play_storeテーブルにはid(pk)、title、artist_id( - >アーティストテーブルpkの外部キー)の列があります。上記play_storeテーブルで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  

、重複タイトルは異なるartist_id Sに入手可能です。これらの重複タイトルは省略したいが、レスポンス列にはすべての異なるartist_idが必要です。期待される結果は次のようになるはずです。

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

は、誰も私が1列に重複値を結合する方法を知っているが、まだ明確な記録を持つことはできますか?

答えて

1

あなたはこれを使用することができます:それはgroup byに存在しないと選択すべきではないと何もid列ありません

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

注こと。 「カウンター」もご希望の場合は、

SET @counter = 0; 
SELECT 
    (@counter := @counter +1) as counter, 
    title, 
    group_concat(artist_id) as artist_ids 
FROM `play_store` 
GROUP BY title 
関連する問題