この構造のテーブルが2つあります
categories
--------------------------------
id | create
1 | 2012-12-01 12:00:00
2 | 2012-12-01 12:00:00
category_i18ns
--------------------------------
category_id | lang | title
1 | en | home page
1 | de | HomE PAGEa
1 | fa | خانه
2 | en | about
一部のカテゴリにはすべての言語データがあり、一部のカテゴリには別のデータがあります。たとえば、カテゴリID2はen
タイトルを翻訳しただけです。最初に現在の言語でタイトルを取得し、存在しない場合は別の言語を表示するクエリが必要です。
この現在の例では、i18nデータを使用して現在のカテゴリデータを取得するためのクエリde
がデフォルトの言語です。カテゴリID1
にはde
タイトルがありますが、カテゴリ2
にはありません。だから私はカテゴリーのタイトルとして英語版が欲しいです
SELECT * FROM `mhf_swe_ndzhmju3_test`.`categories` AS `Category`
LEFT JOIN `mhf_swe_ndzhmju3_test`.`category_i18ns` AS `CategoryLocale` ON (
`CategoryLocale`.`category_id` = `Category`.`id`
AND `CategoryLocale`.`lang` = 'de')
'de'言語への欲求
Category.id CategoryLocale.title CategoryLocale.lang
1 HomE PAGEa de
2 about en