【发布时间】:2015-03-04 18:00:36
【问题描述】:
我对 SQL 的了解很肤浅,但对我来说太复杂的查询遇到了麻烦。
我有一个 APPS 表,其中有一列名称和描述,它们是用于引用正确翻译的 ID。我有一个本地化字符串表。
APPS(app_id、name_strid、description_strid) 字符串(str_id、lang_id、字符串)
我需要一个返回所有应用程序的查询,并为每个字符串提供最佳翻译。 最好的语言顺序(让我说:it-it, it, en)
我找到了一个按语言排序所有应用程序的解决方案:
SELECT A.app_id, S1.string, S2.string
FROM APPS as A
JOIN STRINGS AS S1
ON A.name_strid = S1.str_id
JOIN STRINGS AS S2
ON A.description_strid = S2.str_id
WHERE S1.lang_id = S2.lang_id
AND S1.lang_id IN ("it-it", "it", "en")
ORDER BY
CASE S1.lang_id
WHEN "it-it" THEN 1
WHEN "it" THEN 2
WHEN "en" THEN 3
ELSE 4
END;
我怎样才能只获得最好的语言?
谢谢
【问题讨论】:
-
因此,如果存在 it-it 翻译,它总是最好的翻译,然后它来了,最后 en?