2

誰かがこれを手伝ってくれますか?
country_idでリンクされたcountry_tableとlanguage_tableの2つのテーブルからクエリを実行しています。

country_table:

country_id    continent      country  
 100          asia            china
 101          asia            japan
 102          europe          UK
 103          europe          germany  

language_table:

country_id    language_id     language
 100             01           mandarin  
 100             02           cantonese  
 102             03           english  
 102             04           french
 102             05           welsh          

私が達成したいのは、言語の有無にかかわらず、すべての国を表示することです。言語がある場合は、以下のサンプル出力のように連結する必要があります。

continent    country    language  
asia          china      mandarin, cantonese  
asia          japan      ----
europe        UK         english, french, welsh
europe        germany    ----  
4

2 に答える 2

4

このGROUP_CONCAT()関数を使用して、次のことを実行できます。

select c.continent,
  c.country,
  group_concat(case 
               when l.language is null 
               then '----' else l.language end order by l.language) language
from country_table c
left join language_table l
  on c.country_id = l.country_id
group by c.continent, c.country

SQL FiddlewithDemoを参照してください

于 2012-11-29T23:31:08.283 に答える
0

あなたはこのようなことをする必要があります。

SELECT ct.continent, ct.country, GROUP_CONCAT(lt.language)
FROM country_table ct
LEFT JOIN language_tabel lt USING(country_id)
GROUP BY ct.country
于 2012-11-29T23:30:03.533 に答える