想要使用mysql Query显示关键字及其翻译

时间:2013-03-04 18:53:14

标签: mysql

我有一种情况,有两个表,一个是关键字,第二个是mysql中的翻译

Keywords
------------
ID    Keyword
------------
1     Hi
2     How are you

这是第二张表

Translations
----------------------------------------
keyword_id      translation   Lang_id
------------------------------------------
1               Hello          1
1               Hej            4
1               Hey            2

所以我想显示关键字列表(即使它们不在翻译表中)及其翻译,

我正在使用此查询

SELECT keywords.keyword, translation 
FROM keywords 
LEFT JOIN translations on keywords.id = translations.keyword_id 
WHERE lang_id = 4

因此我想要关键字列表(嗨,你好吗)和翻译列表(Hej) 如果你没有翻译,那么它应该显示一些默认文本,如lang_id 1

2 个答案:

答案 0 :(得分:0)

使用COALESCE()

SELECT keywords.keyword, COALESCE(translation, "lang_id 1")
FROM keywords 
LEFT JOIN translations on keywords.id = translations.keyword_id 
WHERE lang_id = 4

如果没有相应的记录,那将显示您设置的默认字符串而不是NULL ...

答案 1 :(得分:0)

SELECT keywords.keyword, Case When translation is null Then "Lang_ID1" Else translation End)
from keywords 
LEFT JOIN translations on keywords.id = translations.keyword_id 
where lang_id = 4