Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL组返回所有值,而不是每列的值_Mysql - Fatal编程技术网

MySQL组返回所有值,而不是每列的值

MySQL组返回所有值,而不是每列的值,mysql,Mysql,例如,我正在使用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

例如,我正在使用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下所有可能的语言,我不知道为什么

也就是说,它返回如下内容:

ABW荷兰语|英语|阿拉伯语|……(不断重复)

尝试下面的查询

SELECT CountryCode, group_concat(Language separator "|") as "Official Languages"
FROM CountryLanguage where IsOfficial = 'T' group by CountryCode
尝试下面的查询

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

您的
分组依据
位置错误。它应该在
top

试试这个:

select CountryCode, group_concat(top.offlanguages separator "|") as "Official Languages" from (
  select CountryCode, Language as offlanguages 
  from CountryLanguage where IsOfficial = 'T'
) top group by CountryCode

您的
分组依据
位置错误。它应该在
top

试试这个:

select CountryCode, group_concat(top.offlanguages separator "|") as "Official Languages" from (
  select CountryCode, Language as offlanguages 
  from CountryLanguage where IsOfficial = 'T'
) top group by CountryCode

@AzizShaikh在哪里需要对主查询的FROM部分使用另一个查询?没有这一点是可以做到的。对吗?阿齐扎伊赫的解决方案是最好的吗?@rakeshjain我相信你是对的,但我还没有测试过。您可以在回答中编辑并提及这一点。OP可能会在测试后测试并使用您的建议。@Jason Aziz Shaikh也认为我的解决方案更好(见上面的评论)。您能验证一下吗。@AzizShaikh在哪里需要对主查询的FROM部分使用另一个查询?没有这一点是可以做到的。对吗?阿齐扎伊赫的解决方案是最好的吗?@rakeshjain我相信你是对的,但我还没有测试过。您可以在回答中编辑并提及这一点。OP可能会在测试后测试并使用您的建议。@Jason Aziz Shaikh也认为我的解决方案更好(见上面的评论)。你能核实一下吗。