我有兩個表,一個用於英文類別名稱,另一個用於西班牙語類別名稱。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