句の左端の結果がLEFT JOIN
で使用されている場合は、両方ともtrue
と評価された場合、どのように返すのだろうと思いました。LEFT JOINを使用してOR
これまでの解決策では、どちらもにCASE
というステートメントを使用しています。これは、OR
節を放棄することを意味します。
ORDER BY
のCASE
ステートメントを使用することに関連する他の解決策は、
CASE
ステートメントの使用を削減する他のソリューションはありますか?私が尋ねる理由は、今のところ2つしかないので、時間が経つにつれてさらに多くが追加されるからです。
SELECT item.id,
item.part_number,
lang.data AS name,
lang2.data AS description
FROM item
LEFT JOIN
language lang
ON item.id = lang.item
AND (lang.language = 'fr' OR lang.language = 'en')
LEFT JOIN
language lang2
ON item.id = lang2.item
AND (lang2.language = 'fr' OR lang2.language = 'en')
WHERE item.part_number = '34KM003KL'
私はあなたの質問を理解していません... lang.dataとlang2.dataは常に同じことを返します。 – Martin
なぜ同じジョイン基準でLanguageに2回参加していますか? –
申し訳ありません私はサンプル文に 'lang.type'を含めませんでした。lang.type = 'NAME'、lang2.type = 'DESCRIPTION' – Andre