Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-左外部联接的计数不正确_Sql - Fatal编程技术网

SQL-左外部联接的计数不正确

SQL-左外部联接的计数不正确,sql,Sql,我试图从issue表中检索字段,同时从comment表和issue_assigneduser表中检索相关记录计数。如果有2条评论和6个指定用户,我得到的两个计数的值都是12。你知道怎么补救吗 SELECT issue.issueid, COUNT(comment.commentid) AS CountOfComments, Count(issue_assigneduser.userid) as CountOfAssignedUsers, issue.title, issue.

我试图从issue表中检索字段,同时从comment表和issue_assigneduser表中检索相关记录计数。如果有2条评论和6个指定用户,我得到的两个计数的值都是12。你知道怎么补救吗

SELECT issue.issueid, COUNT(comment.commentid) AS CountOfComments, 
    Count(issue_assigneduser.userid) as CountOfAssignedUsers, 
    issue.title, issue.detail, issue.enteredby, 
    issue.datetimeentered, issue.assignedto, issue.categoryid,  
    issue.severityid, issue.statusid, 
    issue.lastcommentdatetime as LastCommentDateTime, 
    issue.lastcommentbyuserid, 
    users.initials as LastCommentUserInitials,  
    lookupstatus.status as Status, 
    lookupcategory.category as Category, 
    lookupseverity.severity as Severity, 
    GetUTCDate() as UTCDateTime  
FROM issue
    INNER JOIN lookupcategory ON issue.categoryid = lookupcategory.categoryid
    INNER JOIN lookupseverity ON issue.severityid = lookupseverity.severityid
    INNER JOIN lookupstatus ON issue.statusid = lookupstatus.statusid
    LEFT OUTER JOIN  comment ON issue.issueid = comment.issueid
    LEFT OUTER JOIN  issue_assigneduser ON issue.issueid = issue_assigneduser.issueid
    LEFT OUTER JOIN  users ON issue.lastcommentbyuserid = users.userid  
GROUP BY issue.issueid, issue.title, issue.detail, 
    issue.enteredby, issue.datetimeentered, 
    issue.assignedto, issue.categoryid, 
    issue.severityid, issue.statusid,  
    issue.lastcommentdatetime, 
    issue.lastcommentbyuserid, 
    users.initials, lookupstatus.status, 
    lookupcategory.category, 
    lookupseverity.severityid, users.initials, 
    lookupstatus.status, lookupcategory.category, 
    lookupseverity.severity  
ORDER BY issue.lastcommentdatetime DESC;
使用
COUNT(不同的字段名)
代替
COUNT(字段名)

例如为用户

Count(DISTINCT issue_assigneduser.userid) as CountOfAssignedUsers

请注意,如果同一用户被分配了两次,则使用此方法只能计算一次。感谢您的警告。我的表格是这样设计的:同一个用户不能被分配两次。