例如,我正在使用world.sql数据库,下面是它的简短示例:

CountryCode:char(3) Language:char(30) IsOfficial:enum('T', 'F') Percentage:float(4,1)

每个国家代码都有几个条目,如下所示:
ABW Dutch T 5.3
ABW English T 9.5

我的目标是:我想得到一个国家代码的所有官方语言。也就是说,如果这是ABW的所有国家代码,我希望它返回:
ABW Dutch|English

以下是我的MySQL查询:
SELECT
  CountryCode,
  group_concat(top.offlanguages SEPARATOR "|") AS "Official Languages"
FROM (
  SELECT
    CountryCode,
    Language AS offlanguages
  FROM CountryLanguage
  WHERE IsOfficial = 'T'
  GROUP BY CountryCode
) top

出于某种原因,它返回ABW CountryCode下的每一种可能的语言,我不明白为什么。
也就是说,它返回如下内容:
荷兰语|英语|阿拉伯语|…(时不时)

最佳答案

尝试下面的查询

SELECT CountryCode, group_concat(Language separator "|") as "Official Languages"
FROM CountryLanguage where IsOfficial = 'T' group by CountryCode

10-08 01:48