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 ステートメントを使用できないと思います。それは手続きのためのものです。

おそらくcaseステートメントの使用を検討する必要があります。

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

于 2012-06-07T17:22:47.137 に答える