任何人都可以告诉我为什么我的SQL查询不起作用(见详情)?

Met*_*uru 0 sql inner-join count

我使用以下查询来查找重复项:

SELECT userID,
COUNT(userID) AS NumOccurrences
FROM userDepartments
GROUP BY userID
HAVING ( COUNT(userID) > 1 )
Run Code Online (Sandbox Code Playgroud)

然后我尝试添加内部联接,以便我可以看到匹配的用户名,这些用户名存储在不同的表中.

SELECT userDepartments.userID, users.firstname, users.lastname,
COUNT(userID) AS NumOccurrences
FROM userDepartments INNER JOIN users ON userDepartments.userID = users.userID
GROUP BY userID
HAVING ( COUNT(userID) > 1 )
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误,说users.firstname不是某些聚合函数或其他东西的一部分......

有谁知道我如何获得计数,只显示超过1个部门的用户,并从另一个表中获取名字和姓氏,以便我可以获得分配了多个部门的用户名列表?

编辑:这就是为我工作的最终......

SELECT     firstname, lastname
FROM         tbl_users
WHERE     (userID IN
                          (SELECT     userID
                            FROM          tbl_usersDepts
                            GROUP BY userID
                            HAVING      (COUNT(userID) > 1)))
Run Code Online (Sandbox Code Playgroud)

yfe*_*lum 5

我会稍微重新排列查询....

SELECT
    duplicates.NumOccurrences,
    duplicates.userID,
    users.firstname,
    users.lastname
FROM (
    SELECT
        userID,
        COUNT(userID) AS NumOccurrences
    FROM userDepartments
    GROUP BY userID
    HAVING COUNT(userID) > 1
) duplicates
INNER JOIN users ON duplicates.userID = users.userID
Run Code Online (Sandbox Code Playgroud)