我有一个正在我的数据库上测试的查询,但由于某种奇怪的原因,它随机返回一组不同的结果。有趣的是,它只返回两个不同的结果集,来自数千行,并且查询将随机返回一个或另一个,但没有别的。
查询仅返回两个数据集之一是否有原因?下面的查询和架构。
我的目标是在给定的时间段内为给定的赛道选择最快的圈速,但只为每个用户选择最快的圈速(因此前 10 名中总是有 10 个不同的用户)。
大多数情况下会返回正确的结果,但随机返回的是完全不同的结果集。
SELECT `lap`.`ID`, `lap`.`qualificationTime`, `lap`.`userId`
FROM `lap`
WHERE (lap.trackID =4)
AND (lap.raceDateTime >= "2013-07-25 10:00:00")
AND (lap.raceDateTime < "2013-08-04 23:59:59")
AND (isTestLap =0)
GROUP BY `userId`
ORDER BY `qualificationTime` ASC
LIMIT 10
架构:
CREATE TABLE IF NOT EXISTS `lap` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`userId` int(11) DEFAULT NULL,
`trackId` int(11) DEFAULT NULL,
`raceDateTime` datetime NOT NULL,
`qualificationTime` decimal(7,4) DEFAULT '0.0000',
`isTestLap` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`)
(数据库创建脚本修剪不需要的列)