2016-08-04 17 views
-1

idの列にA1, A2, A3...などの値を含むテーブルlocationがあります。SQLクエリのカンマ区切りの結果

A1 blue 
A1 red 
A1 green 
A2 yellow 
A2 red 
A3 blue 
A3 red 
. 
. 

は今、私はこの

blue,red,green 
yellow,red 
Blue, red 

私のクエリは

select location_color.color 
from location_color 
where location.id = location_color.location_id 

が、それは働いていないですようなので、結果は次のようになり照会したい:私はこのように別のテーブルlocation_colorを持っています。ここでは、SQL Serverを使用していると仮定すると、

+1

あなたは 'GROUP BY'と' GROUP_CONCAT() ' –

+3

RDBMS(ベンダーおよびバージョン)を使用することができますか?タグ* sql *は十分ではありません... – Shnugo

+0

あなたは 'location'テーブルを含めませんでした。しかし、なぜあなたが 'location'テーブルから何も使っていないときに' where'節を持っていたいのですか?それを「どこに」置いておきます。 – trincot

答えて

1

には、使用できるものである。

MySQLで
SELECT location_id, stuff((
     select DISTINCT ',' + u.location_color 
     from #temp u 
     where u.location_id = t.location_id 
     for xml path('') 
    ),1,1,'') as location_color_csv 
FROM #temp t 
GROUP BY t.location_id 
関連する問題