2016-09-30 8 views
2

私は2つのテーブルを持っています。 lapsと呼ばれる表で、車で1周して完成したすべてのラップの記録と、そのラップの一定の距離で最も速い時刻からなるbest_timeという表があります。たとえば、そのラップに最速の1k、または最速の半マイルが含まれます。1つのフィールドが前のレコードよりも小さく、1つのフィールドが大きいMySQL選択行

私はこれらのテーブルの中からの最速時間進行を距離ごとに選択したいと考えています。それで、時間の経過とともに、その距離であなたの個人的な進歩をそのラップに示すでしょう。たとえば、最速の1kが1月に設定されていた可能性があります。その後、6月に破損し、8月に破損しました。以下は、私がtotal_elapsed_timeが前のレコードよりも少ないとstart_timeが大きいレコードを選択する必要が

best_time_id int(10)  
lap_id int(11) 
start_time int(10) 
end_time int(10) 
total_distance decimal(7,2) 
total_elapsed_time decimal(11,2) 

よう best_timesテーブル構造が見えるものです。これまでの私の質問はこれです

SELECT `bt`.`total_distance`, `bt`.`total_elapsed_time`, `bt`.`start_time` 
     FROM `best_times` AS `bt`, `laps` AS `l` 
     WHERE (
      SELECT COUNT(*) FROM `best_times` AS `bt2` 
      WHERE `bt2`.`total_distance` = `bt`.`total_distance` 
      AND `bt2`.`total_elapsed_time` <= `bt`.`total_elapsed_time` 
      AND `bt2`.`start_time` > `bt`.`start_time` 
     ) <= 10 AND `l`.`lap_id` = `bt`.`lap_id` AND `l`.`car_id` = 1 ORDER BY `bt`.`total_distance` ASC, `bt`.`total_elapsed_time` desc 

このような作品はありますが、これはすべきではありません。私は戻って取得していた結果セットの例は、私が近いんだけど、私は間違っているつもりだところ、誰でも見ることができます。この

| total_distance | total_elapsed_time | start_time | 
|----------------|--------------------|------------| 
| 1000.00  | 99.15    | 1431344798 | 
| 1000.00  | 98.25    | 1431604966 | This record shouldn't be here because although it's quicker it happened after the 91.40 time 
| 1000.00  | 91.40    | 1431433535 | 

です。詳しい情報を提供する必要がある場合はお知らせください。

答えて

1

これは、経過時間が車= 1の合計距離とラップIDによって、以前のすべての経過時間未満のすべての行を表示します:

SELECT `bt`.`total_distance`, `bt`.`total_elapsed_time`, `bt`.`start_time` 
FROM `best_times` AS `bt`, `laps` AS `l` 
WHERE `bt`.`total_elapsed_time` <= (Select min(`bt2`.`total_elapsed_time`) from `best_times` AS `bt2` where `bt2`.`start_time` <= `bt`.`start_time` 
AND `bt2`.`total_distance` = `bt`.`total_distance` ) 
AND `l`.`lap_id` = `bt`.`lap_id` 
AND `l`.`car_id` = 1 
ORDER BY `bt`.`total_distance` ASC, `bt`.`total_elapsed_time` desc 

私がlap_idされるかについて、あまりにもわからないんだけど、多分それを取り除くことができる

+0

これは私が必要としたものであり、解決策を通して読むことは意味があります – Pattle

+0

私達は最後にそれを解決してうれしいです! – Jayvee

関連する問題