2015-06-03 22 views
0

我正在請求一些幫助,以便在自定義高爾夫網站上使用查詢。MySQL查詢 - 多個表/連接的最低值

我需要的是找到每個球員每球場的最低分數。我的俱樂部有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

不過,我則需要爲上述過濾它,進入「每名球員,每場」

我假設這是一些子查詢,連接,臨時表或「in」類型的語句,但掙扎,特別是因爲它跨越多個表。

任何幫助表示讚賞

+3

請了解如何使用正確的顯式'join'語法。 –

+0

你還在研究這個嗎? – AdamMc331

回答

0

這可以使用一些簡單的聚合完成。只要您能夠正確加入所有表格,您可以這樣做:

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

感謝您的提示。沒有意識到可以使用多個組。 最終的查詢被用來爲: 選擇sub_nine,總和(sub.sub_low_nett)爲點,從 ( 選擇c.cn_nine如sub_nine sub_pid,分鐘(rh.rh_nett)作爲sub_low_nett,p.id如sub_pid from round r,round_hole rh,player p,course_nine c,course_hole ch 其中r.r_id = rh.rh_rid 和p.id = r.r_pid 和c.cn_nine = r.r_nine 和ch.ch_nine = c。 cn_nine 和rh.rh_hid = ch.ch_no group by p.id,c.cn_nine,ch.ch_no )as sub group by sub_pid –