php mysql用concat连接表

时间:2012-11-29 23:24:12

标签: php mysql

任何人都可以帮我这个吗? 我正在查询2个表,country_table和由country_id链接的language_table。

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    ----  

2 个答案:

答案 0 :(得分: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 Fiddle with Demo

答案 1 :(得分: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