MySql Inner Join问题>不包含在聚合函数或GROUP BY子句中

时间:2016-03-10 16:55:20

标签: mysql sql inner-join

我对此陈述有困难:

SELECT DISTINCT
    User_ID
FROM
    [WebServiceMGT].[dbo].[WEBSERVICE_USERS] P
INNER JOIN [WebServiceMGT].[dbo].[FEATURE_AUTHORIZATIONS] C ON P.USER_SYSID = C.USER_SYSID  
WHERE
    c.Feature_SysID in ('1','2')
GROUP BY
    c.USER_SYSID
HAVING
    COUNT(c.USER_SYSID) = 2

我收到错误栏' WebServiceMGT.dbo.WEBSERVICE_USERS.USER_ID'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

任何人都知道为什么?

由于

1 个答案:

答案 0 :(得分:1)

原因很简单:select子句在group by子句之后执行。由于您有group by子句,因此当您到达select子句时,您将拥有已修改的关系。此修改后的关系包含分组列,其他列只能通过聚合函数使用。

如果您将distinct列放入User_ID代替group by

,则不需要USER_SYSID