我有两个表:Races
和RacesTimes
,我想所有的Races
和RacesTimes
只有Finisher
和Time
,只有最好的RacesTimes.TotalTime
(有序ASC与LIMIT 1)从每个RaceID
(从列中提取RacesTimes
)。MySQL的子查询简化
那么结果将是:
Races.*
,RacesTimes.Finisher
,RacesTimes.Time
这是我编:
SELECT *种族(SELECT
TotalTime
FROMRacesTimes
WHERERaceID
= Races.ID ORDER BYTotalTime
ASC LIMIT 1)ASBestTime
,(SELECTTime
FROMRacesTimes
WHERERaceID
= Races.ID ORDER BYTotalTime
ASC LIMIT 1)ASBestTimeS
,(SELECTFinisher
FROMRacesTimes
WHERERaceID
= Races.ID ORDER BYTotalTime
ASC LIMIT 1)ASBestFinisher
FROMRaces
据提取corectly所有,但查询是方式太长了,难道不能简化吗?我认为简化版本使用了LEFT JOIN或其他类似的东西,我不知道如何在JOIN中使用查询。
创建[SQLFiddle(http://www.sqlfiddle.com/)。这样,我们有更好的方式来帮助你。 – 2013-05-06 19:22:30