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

我需要的是找出每门课程每位球员的最低分数。我的俱乐部有3个9洞环,总共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

但是,我需要按照上面的方法将其过滤为“每位球员,每门课程”

我以为这是一些子查询,联接,临时表或“ in”类型语句,但是很麻烦,尤其是因为它跨越多个表。

任何帮助表示赞赏

最佳答案

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

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

08-06 22:47