0

我有一种情况,有两个表,一个是关键字,第二个是 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

4

2 回答 2

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在没有相应记录时...

于 2013-03-04T18:58:12.447 回答
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
于 2013-03-04T19:02:08.000 回答