本文介紹了MySQL獲取最新記錄檢查兩列的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我的結果是這樣的
我需要獲得每個騎師的最新比賽(首先獲得比賽的最大日期,然后是最大比賽次數(shù))。結果應該如下所示:
注:數(shù)據(jù)庫非常大。查詢速度應該非常快。
推薦答案
當您說”最大比賽數(shù)”時,是指最近一場比賽的編號(最近日期的比賽),還是指最大的比賽編號?
假設您指的是前者,并為您的桌子編造了名稱‘race’:
SELECT
Race.*
FROM
(
SELECT Jockey, MAX(Date) as MaxDate
FROM Races GROUP BY Jockey
) MaxRaceDate
inner join (
SELECT Jockey, Date, MAX(Race) as MaxRace
FROM Races
GROUP BY Jockey, Date
) MaxRaceForDate
on MaxRateDate.Jockey = MaxRaceForDate.Jockey
and MaxRateDate.MaxDate = MaxRaceForDate.Date
inner join Race
on Race.Jockey=MaxRace.Jockey
and Race.Date = MaxRace.MaxDate
and Race.Race = MaxRaceForDate.MaxRace
這個查詢太長了,所以我可能弄錯了,但它應該大致正確。;)
基本上,您需要對表執(zhí)行一個聚合查詢來查找日期,然后再對該日期的最大匯率執(zhí)行另一個聚合查詢,最后是表本身來獲取信息。然后,您需要使用子查詢或連接將它們放在一起,而連接通常要快得多,所以我選擇了這種方式。
這篇關于MySQL獲取最新記錄檢查兩列的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,