使用MySQL查询与sql_mode = only_full_group_by不兼容

问题描述 投票:0回答:1

我的Query出现错误

1055 SELECT列表的表达式#2不在GROUP BY子句中,包含未聚合的列'dms.HrAttLogsFormatted.ScanIn',该列为在功能上不依赖于GROUP BY子句中的列;这是与sql_mode = only_full_group_by不兼容

查询:

SELECT
    Employee.Id as Id,
    Employee.FingerId as FingerId,
    Employee.Name as Name,
    Departement.Departement as Departement,
    EmployeeShift.Shift as Shift,
    ScanIn
FROM
    HrEmployee as Employee
    LEFT JOIN HrEmployeeShift as EmployeeShift 
        ON Employee.ShiftId = EmployeeShift.Id
    LEFT JOIN CmDept as Departement 
        ON Employee.DeptId = Departement.Id
    LEFT JOIN (
        SELECT
            TableEmployee.FingerId,
            ScanIn
        FROM
            HrEmployee as TableEmployee,
            HrAttLogsFormatted
        WHERE
            TableEmployee.FingerId = HrAttLogsFormatted.FingerId
            AND DateIn = '2019-11-04'
        GROUP BY HrAttLogsFormatted.FingerId
    ) AS HrJoinLogs 
        ON Employee.FingerId = HrJoinLogs.FingerId
WHERE
    Employee.Status = 1
    AND Employee.Flag = 1
    AND Employee.ShiftId = 1
    AND ScanIn is NULL
GROUP BY
    Employee.Name
ORDER BY
    Employee.Name ASC

有人有解决方案吗?

mysql
1个回答
0
投票
因此,按ScanIn分组不会有任何伤害。将, ScanIn添加到两个GROUP BY子句中。
© www.soinside.com 2019 - 2024. All rights reserved.