私のSQL文はそのように見えます
SELECT qe.id, qe.content, a.id, a.content, a.addDT, acr.checked, acr.score
FROM `questions_and_exercises` qe,
`questions from-to` qft
LEFT JOIN `questions-answers` qa ON (qa.qid=qe.id AND qa.uid=qft.uid)
LEFT JOIN answers a ON (a.id=qa.aid)
LEFT JOIN `answer_chk_results` acr ON (acr.aid=a.id)
AND qft.to_lid=2
WHERE qft.to_uid=3
今、WHERE
一部は私がやりたいことをしていません。この結果を達成しようとしています:
- qft.to_lid=? の場所をすべて選択します。(これは qft.to_uid=NULL を意味します) (常に)
- qft.to_uid=? の行がある場合 (qft.to_lid=NULL を意味します) それらも選択します (そのような行がある場合のみ)。つまり、結果に追加します。
1つのSQL文だけでこれを達成する方法はありますか?
アップデート
たとえば、クエリを実行するとき
WHERE qft.to_lid=2 AND qft.to_uid=NULL
WHERE qft.to_uid=2 AND qft.to_lid=NULL
ID 4,5,6 の行を取得したい。この条件のいずれかが結果を示さない場合は、他の条件を表示します。つまり、この条件は相互に関係がありません