У меня есть таблица данных результатов, в которой я хотел бы выбрать информацию, которая в основном относится к записи, относящейся к финишеру, занявшему второе место.
Так, например, местоположение гонки, дата гонки и дефицит времени для победителя.
Но то, что я хотел бы показать в своем запросе, это победитель, за которым следует их выигрышная маржа, которая фактически сохраняется в записи, относящейся к финишеру, занявшему второе место.
Например:
id | race_id | result | Entrant | Time
---|---------|--------|---------------|------
0 | 001 | 1 | Huw Edwards | 54:78.491
1 | 001 | 2 | Fiona Bruce | 0.250
2 | 001 | 3 | Sophie Raworth| 3.114
3 | 001 | 4 | George Alagiah| 6.756
4 | 001 | 5 | Mishal Husain | 42.452
5 | 001 | 6 | Peter Sissons | 58.004
6 | 002 | 1 | Fiona Bruce | 43:08.549
7 | 002 | 2 | Sophie Raworth| 5.439
8 | 002 | 3 | Mishal Husain | 5.444
9 | 002 | 4 | Huw Edwards | 6.007
10 | 002 | 5 | Peter Sissons | 13.000
11 | 002 | 6 | George Alagiah| 2:12.782
Я пробовал запрос, подобный этому (не работает должным образом):
SELECT r.id, r.entrant, r.time
FROM races as r
LEFT JOIN races as r1
ON r1.id > r.id
WHERE r.result = "2"
Я хотел бы в итоге получить результат, подобный следующему, потому что он показывает выигрышную маржу, которой пользовался Хью Эдвардс.
id | race_id | entrant | time
---|---------|-------------|-------
1 | 001 | Huw Edwards | 0.250
7 | 002 | Fiona Bruce | 5.439
Вот моя схема таблицы:
CREATE TABLE `races` (
`series` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`year` int(11) NOT NULL,
`round` int(11) NOT NULL,
`date` date NOT NULL,
`race_id` text COLLATE utf8_unicode_ci NOT NULL,
`track` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`result` int(11) NOT NULL,
`number` int(11) NOT NULL,
`class` varchar(11) COLLATE utf8_unicode_ci NOT NULL,
`class_pos` int(11) NOT NULL,
`runner` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`runner_id` int(11) NOT NULL,
`runner2` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`runner_id2` int(11) NOT NULL,
`entrant` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`laps` int(11) NOT NULL,
`time` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`best` text COLLATE utf8_unicode_ci NOT NULL,
`qual` int(11) NOT NULL,
`marque` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=43021 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci