0

请帮助我了解为什么 WHERE 语句上的 COUNT 条件会出错,我该如何解决?

         SELECT jq.taskqueueid,jq.jobid
           FROM (SELECT p.taskID `curentTaskID`,
                    p.taskName `currentTaskName`,
                    p.processingType `currentProcessingType`,
                    p1.taskID `prevTaskID`,
                    p1.taskName `prevTaskName`,
                    p1.processingType `prevProcessingType`
                  FROM projecttask p
                  LEFT JOIN projecttask p1
                    ON p.sequenceNo=p1.nextTaskSequence
                   AND p.projectID=p1.projectID
                 WHERE p.taskID=18) task
           INNER JOIN taskslogs tl
              ON tl.taskID=task.`prevTaskID`
             AND tl.statusDefinitionID=1
           INNER JOIN jobqueue jq
              ON tl.taskqueueid=jq.taskqueueid
           WHERE COUNT(jq.taskqueueid)=COUNT(tl.taskqueueid)
4

1 回答 1

2

要使用像 COUNT() 这样的聚合函数,您需要对数据进行分组,如果要将其用作条件,则不能为此使用 WHERE,因为在聚合之前会考虑 WHERE 条件。将 GROUP BY 与 HAVING 一起使用。(另见http://dev.mysql.com/doc/refman/5.0/en/select.html

于 2012-06-04T17:12:27.043 回答