0

如果 WHERE 子句不起作用,谁能帮我解释一下为什么?什么是替代解决方案?

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
4

2 回答 2

1

也许是这样的:

WHERE 
    (prevTask.processingType='BATCH' AND jq.batchid!=0)
    OR (prevTask.processingType='DOCGROUP' AND jq.documentgroupid!=0)
于 2012-06-07T17:20:43.660 回答
0

我认为您不能在查询中使用 IF 语句。更多的是程序。

您可能应该看看 using case 语句。

http://dev.mysql.com/doc/refman/5.0/en/case-statement.html

于 2012-06-07T17:22:47.137 回答