【发布时间】:2017-04-26 08:57:56
【问题描述】:
我有一张表格,其中包含不同语言的国家和翻译,如下所示(可能有些数据可能有误,但只是示例值):
lanId, countryId, name, translation
1, 1, Spain, Spain
1, 2, France, France
1, 3, Italy, Italy
2, 1, Spain, España
2, 2, France, Francia
2, 3, Italy, Italia
3, 1, Spain, Espagne
3, 2, France, France
3, 3, Italy, Italie
我需要得到的是一个显示一列语言的矩阵,类似于:
countryId, countryName, es, fr,
1, spain, españa, espagne
2, france, francia, france
3, italy, italia, italie
我试过用 CASE 句:
SELECT countryId,
case WHEN idLan =1 THEN translation end as en,
case WHEN idLan =2 THEN translation END as es,
case WHEN idLan =3 THEN translation END as fr,
FROM translations
但我在每一列中都得到了很多 NULL,如下所示:
countryId, en, es, fr
1, spain, NULL, NULL
2, france, NULL, NULL
3, Italy, NULL, NULL
1, NULL, españa, NULL
2, NULL, francia, NULL
3, NULL, italia, NULL...
我怎样才能得到这样的矩阵,但避免空值?
countryId, en, es, fr
1, spain, españa, espagne
2, france, francia, france
3, Italy, italia, italie
坦克。
【问题讨论】:
-
你也需要一个 GROUP BY。
-
谢谢。关键是按 countryId 和 name 分组。
标签: mysql sql matrix pivot-table