查询:
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对GROUP by的臭名昭著的非标准处理。这里。
其次,您似乎在使用group by
来消除结果集中的重复项。这个程序是有问题的。在我看来,这是不能接受的,当你的查询涉及别人的钱。您可能希望改用select distinct
。但是,最好的方法是找出查询的预期逻辑,并重写它以更显式地交付该逻辑。
如果您仍然认为需要groupby
,请查看查询工作时的结果集,然后再升级到更现代的MySQL版本。您将看到结果集的ScanIn列的所有行都为NULL,因为您的查询显示而ScanIn是NULL
。
下面的CodeIgniter查询给出了一个错误提示; SELECT列表的表达式#22不在GROUP BY子句中,并且包含非聚合列'HW3.1.HW_COMABETY.ID',该列在功能上不依赖于GROUP BY子句中的列;这与sql_mode=only_full_group_by不兼容
问题内容: 我一直在切换到拉曼SQL棒球数据库的脱机版本时遇到问题。我正在使用嵌入到EDX课程中的终端。此命令在Web终端上运行良好: 它正在运行SQL 5.5.46,但是当我使用运行5.7.10的脱机版本时,出现以下错误代码: 错误代码:1055。SELECT列表的表达式#1不在GROUP BY子句中,并且包含未聚合的列’stats.m.nameFirst’,该列在功能上不依赖于GROUP BY
问题内容: 我有一个在MySQL 5.6上运行良好的存储过程。在最近的服务器迁移中,我们升级到MySQL 5.7.19。 我的存储过程现在抛出错误: 我已经设置了对通过文件,重新启动mysql服务,并通过控制台,以确认登录的通过是空白 尽管如此,当我尝试运行存储过程时,我仍然收到上述错误。 接下来,我该怎么办才能继续排除错误的出处? 问题答案: 根据文档,MySQL使用创建该过程时处于活动状态的s
SQL在sql_mode=ONLY_FULL_GROUP_BY中遇到了一些问题,如何重写这个SQL?
你能告诉我最好的解决办法... 我需要像这样的结果
问题内容: 我在装有WAMP Server的Windows PC上使用MySQL 5.7.13运行 这是我的问题是执行此查询时 总是会出现这样的错误 SELECT列表的表达式#1不在GROUP BY子句中,并且包含未聚合的列’returntr_prod.tbl_customer_pod_uploads.id’,该列在功能上不依赖于GROUP BY子句中的列;这与sql_mode = only_fu