MySQL:一起返回2个不同的结果

时间:2012-07-27 13:10:45

标签: mysql sql

我的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)也选择它们(仅在有这样的行的情况下)。换言之,附加到结果。

无论如何只有一个sql语句来实现这个吗?

更新

enter image description here

对于我查询的时候

WHERE qft.to_lid=2 AND qft.to_uid=NULL
WHERE qft.to_uid=2 AND qft.to_lid=NULL

我想获得带有ID的行:4,5,6。如果其中一个条件没有结果显示另一个。换句话说,这种情况彼此之间没有关系

1 个答案:

答案 0 :(得分:0)

SELECT qe.id, qe.content, a.id, a.content, a.dt, acr.checked, acr.score  
FROM `questions_and_exercises` qe, 
`questions from-to` qft 
LEFT JOIN `questions-answers` qa ON (qa.qid=q.id AND qa.uid=?) 
LEFT JOIN answers a ON (a.id=qa.aid) 
AND qft.to_lid=? 
AND qft.uid=?