1

たとえば、私は 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

私の目標は次のとおりです。CountryCode のすべての公用語を取得したいと考えています。つまり、それが 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 オランダ語|英語|アラビア語|...(何度も何度も)

4

2 に答える 2

3

以下のクエリを試してください

SELECT CountryCode, group_concat(Language separator "|") as "Official Languages"
FROM CountryLanguage where IsOfficial = 'T' group by CountryCode
于 2013-08-29T05:38:18.360 に答える