【发布时间】:2018-12-03 20:21:23
【问题描述】:
我所追求的是查看特定比赛的最快圈速,这将通过使用比赛名称和比赛日期来确定。
SELECT lapName AS Name, lapDate AS Date, T
FROM Lap
INNER JOIN Race ON Lap.lapName = Race.Name
AND Lap.lapDate = Race.Date
GROUP BY Date;
它目前只显示 3 个不同的比赛名称,4 个不同的日期,这意味着我总共有 4 个组合,而实际上有 9 个唯一的比赛名称、比赛日期组合。
唯一的比赛数据存储在 Race 表中。单圈时间存储在 LapInfo 表中。
我还收到了关于我的组声明的警告,说它虽然仍在运行,但它是模棱两可的。
【问题讨论】:
-
你需要使用某种聚合——我假设
min(laptime)... -
不幸的是,当涉及到分组时,MySQL 允许错误的 SQL。根据经验,任何不在
GROUP BY中的列都需要聚合,使用MIN()、MAX()、SUM()等。请这样做以确保我们得到您的查询。 -
并请注明每列所属的表格。例如,代替
raceDate输入Race.raceDate。
标签: mysql sql group-by inner-join