2016-08-10 7 views
1

私はこのようなデータを持っている:MySQLのグループと連結複数の列

| hotel_id | city_name_en | country_name_en  | city_name_ar | country_name_ar | 
|----------|--------------|----------------------|--------------|-----------------| 
| 4020874 | Dubai  | United Arab Emirates | XXXX   | XXXXXXXX  | 
| 4020882 | Dubai  | United Arab Emirates | XXXX   | XXXXXXXX  | 
| 4020890 | Dubai  | United Arab Emirates | XXXX   | XXXXXXXX  | 
| 4000053 | Al Fujayrah | United Arab Emirates | YYYY   | YYYYYYYY  | 
| 4000058 | Al Fujayrah | United Arab Emirates | YYYY   | YYYYYYYY  | 
| 4000060 | Al Fujayrah | United Arab Emirates | YYYY   | YYYYYYYY  | 

と私はしたい。このような出力:

| hotel_id_list    | name_en       | name_ar   | 
|---------------------------|-----------------------------------|--------------------| 
| 4020874, 4020882, 4020890 | Dubai, United Arab Emirates  | XXXX, XXXXXXXXXXXX | 
| 4000053, 4000058, 4000060 | Al Fujayrah, United Arab Emirates | YYYY, YYYYYYYYYYYY | 

は私がcity_name_enでホテルIDとグループにそれらをCONCATしたいとcity_name_ar。

これは私がこれまでに試した質問です。

select 
     GROUP_CONCAT(DISTINCT hotel_id) AS 'hotel_id_list' 
from (
select g1.hotel_id, g1.country_code, g1.city_name as city_name_en, g1.country_name as country_name_en, g2.city_name as city_name_ar, g2.country_name as country_name_ar 
from general_details g1 
inner join general_details g2 on g1.hotel_id = g2.hotel_id and g1.language_id=0 and g2.language_id=1) as t 
where country_code = 'AE' 

私はホテルのIDを連結することができますが、都市と国を連結することもできます。

このような何かが動作するはず
+0

あなたはこれまでにしようとしているかを示す必要がありますか? –

+0

@MilanGupta今すぐ確認してください。 – Idnan

答えて

0

SELECT GROUP_CONCAT(`hotel_id`) AS `hotel_id_list` 
CONCAT(`city_name_en`, ', ', `country_name_en`) AS `name_en` 
CONCAT(`city_name_ar`, ', ', `country_name_ar`) AS `name_ar` 
FROM `<yourtablename>` 
GROUP BY `city_name_en`, `country_name_en`, `city_name_ar`, `country_name_ar` 
関連する問題