2012-06-07 49 views
0

谁能帮助我为什么WHERE子句,如果没有发挥作用?它有什么替代解决方案?MySQL的WHERE随着IF条件

SELECT jq.jobid 
    FROM jobqueue jq 
    LEFT JOIN taskslogs tl 
    ON jq.taskqueueid=tl.taskqueueid 
    LEFT JOIN (SELECT p1.taskID,p1.processingType 
       FROM projecttask p 
       LEFT JOIN projecttask p1 
       ON p.sequenceNo=p1.nextTaskSequence 
       AND p.projectID=p1.projectID 
       WHERE p.taskID=paramTaskID) prevTask 
    ON tl.taskID=prevTask.taskID 
WHERE IF(prevTask.processingType='BATCH',jq.batchid!=0,IF(prevTask.processingType='DOCGROUP',jq.documentgroupid!=0,TRUE)) 
GROUP BY jq.jobid 
+1

它是如何工作的?错误? –

回答

1

也许是这样的:

WHERE 
    (prevTask.processingType='BATCH' AND jq.batchid!=0) 
    OR (prevTask.processingType='DOCGROUP' AND jq.documentgroupid!=0) 
+0

不错的主意,谢谢你的工作 – Bryan

+0

没问题..很高兴帮助:P – Arion