2009-08-31 14 views
0

指定した言語に基づいてすべての商品の説明を表示しようとしていますが、その言語の翻訳が見つからない場合は、代わりにデフォルトが使用されます。あなたの助けを大幅に高く評価されるように、私は、日本に取り組んできましたSQLクエリ:商品の説明のリスト

http://pastebin.com/m306e670c

このペーストを見てください、すべてが期待される結果と説明されています! langは上で定義されて

+0

@dom。私は* rexem *によってSELECTステートメントを受け取り、それに基づいてビューを作成します。次に、SELECTを作成し、必要に応じて製品と言語によるフィルタを追加することができます。 – van

+0

@dom。 ... 'lang'と 'productid'をそのビューの追加列として追加する必要があります – van

答えて

1

SELECT COALESCE(pd.short_description, t.short_description) 
    FROM PRODUCT_DESCRIPTIONS t 
LEFT JOIN PRODUCT_DESCRIPTIONS pd ON pd.product_id = t.product_id 
           AND pd.lang = 'mk' 
    WHERE t.is_default = 1 

あなたはWHERE句で言語をフィルタリングする場合、それは動作しません登録しよう。

+0

+1すべてのプロダクトIDに* is_default *というラベルがあると仮定します。それ以外の場合は、デフォルトで左にジョインする(FROM)必要な言語から始めます(WHERE句ではなくJOINの別の条件としてt.is_defaultを指定します)。 – van

+0

@van:あなたは希望の言語が存在しないところでproduct_idsを取得しないので、デフォルト言語のshort_description値を取得しようとすると無駄になります。 –

関連する問題