【问题标题】:want to display keywords and their translations using mysql Query想使用 mysql Query 显示关键字及其翻译
【发布时间】:2013-03-04 18:53:14
【问题描述】:

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

【问题讨论】:

  • 那么您从查询中得到什么输出?

标签: mysql


【解决方案1】:
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

【讨论】:

    【解决方案2】:

    使用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...

    【讨论】:

      猜你喜欢
      • 2020-09-12
      • 1970-01-01
      • 2013-10-15
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 2011-06-08
      • 1970-01-01
      相关资源
      最近更新 更多