MySQL 查询 - 多个表/联接的最低值

MySQL Query - Lowest Values with Multiple Tables / Joins

我正在请求一些帮助,以便在自定义高尔夫网站上使用查询。

我需要的是找到每个球员每门课程的最低分数。我的俱乐部有 3 个九洞循环,总共 27 个洞,但我想找到每 9 个洞中最低的一个(即我描述的球场)。

我有以下数据库结构(注意,我没有放入所有行,只有那些与我正在努力处理的查询相关的行)。

Golf DB ERP Diagram

获取完整数据集的查询将是(注意一些字段名称不同 - 该图试图更好地描述......):

select * from round r, round_hole rh, player p, course_nine c, course_hole ch 
where r.r_id = rh.rh_rid 
and p.id = r.r_pid 
and c.cn_nine = r.r_nine 
and ch.ch_nine = c.cn_nine 
and rh.rh_hid = ch.ch_no

结果快照是:

Full query ouput

然而,我需要像上面那样过滤它,变成“每个玩家,每个课程”

我假设这是一些子查询、连接、临时 table 或“in”类型的语句,但很挣扎,尤其是当它跨越多个 table 时。

感谢任何帮助

这可以使用一些简单的聚合来完成。只要您能够正确连接所有表,就可以这样做:

SELECT player, course, MIN(score) AS lowestScore
FROM myTables
GROUP BY player, course;