1

我有两张表,一张用于英文类别名称,另一张用于西班牙类别名称。

我正在尝试编写一个小界面,允许管理员查看仍必须为哪些英语类别提供翻译。

我会假设当您创建西班牙语类别时,它会继承英语类别的 ID。

要获得相应类别的结果集,我有以下查询:

SELECT tbl_cms_categories_en.id as id, 
   tbl_cms_categories_en.name as en, 
   tbl_cms_categories_es.name as es 
FROM   tbl_cms_categories_en, tbl_cms_categories_es 
WHERE  tbl_cms_categories_en.id = tbl_cms_categories_es.id

这会返回一个很好的条目列表:

在此处输入图像描述

这很好地满足了我的目的,但有一个不足之处。如果西班牙表中没有行,则它根本不返回派生行。

我怎样才能更改我的查询,以便如果英语表中有一行但西班牙语表中没有,我可以返回派生行说“未找到翻译”。

类似于:

ID = 8, en = "Security", es = "Translation Not Found"

任何指导将不胜感激。

谢谢大佬!

4

2 回答 2

4

尝试

SELECT tbl_cms_categories_en.id as id, 
   en.name as en_name, 
   IF(es.name IS NULL, "No Translation Found", es.name) as es_name 
FROM   tbl_cms_categories_en AS en
LEFT JOIN tbl_cms_categories_es AS es
    ON tbl_cms_categories_en.id = tbl_cms_categories_es.id
于 2012-04-04T23:56:04.733 回答
0

为什么不将所有西班牙语行的默认值设置为“找不到翻译”?

只是一个建议...

于 2012-04-04T23:58:50.960 回答