我想知道如何將中使用的OR
子句中的最左邊條件的結果返回,如果兩者都評估爲true
。LEFT JOIN using OR
我到目前爲止所使用的解決方案均涉及在SELECT
中使用CASE
聲明,這意味着我會放棄OR
子句。
另一種解決方案涉及在ORDER BY
中使用CASE
語句。
是否有任何其他解決方案可以減少使用CASE
語句。我想問的原因是因爲現在只有兩個LEFT JOIN
s,但隨着時間的推移會增加更多。
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 2009-08-04 16:03:53
你爲什麼要用相同的連接標準加入語言兩次? – 2009-08-04 16:05:26
對不起,我沒有在樣本聲明中加入'lang.type'。它應該是lang.type ='NAME'和lang2.type ='DESCRIPTION' – Andre 2009-08-04 16:29:16