0

2 つのテーブルがあり、1 つはキーワードで、2 番目は mysql の翻訳です。

Keywords
------------
ID    Keyword
------------
1     Hi
2     How are you

2つ目のテーブルはこちら

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

結果として、キーワードのリスト (Hi, how are you) と翻訳のリスト (Hej) が必要です。How are you の翻訳がない場合は、lang_id 1 のようなデフォルトのテキストを表示する必要があります。

4

2 に答える 2

0

使用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対応するレコードがない場合の代わりに、設定したデフォルトの文字列が表示されます...

于 2013-03-04T18:58:12.447 に答える
0
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
于 2013-03-04T19:02:08.000 に答える