我有两个表,一个用于英文类别名称,另一个用于西班牙语类别名称。MySQL:返回空字段而不是无行
我正在尝试编写一个小界面,允许管理员查看哪些英文类别仍需提供翻译。
我会写它,假设你创建一个西班牙类别时,它会继承英文类别的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"
任何指导,将bigly赞赏。
Thanks dudes!
你会想要快速阅读外部连接。然后使用COALESCE或等价的用你的“not found”字符串替换你的空字段。并考虑其他方式(西班牙语,但不是英语)。 – Glenn 2012-04-04 23:57:18
因为隐式连接总是内连接,所以您需要使用'LEFT OUTER JOIN'显式JOIN语法,使用'JOIN'和'ON'子句。 – 2012-04-05 00:03:41