У меня есть база данных, полная спортивных результатов. Я хотел бы выбрать некоторые результаты, основанные на некоторых характеристиках предыдущих результатов. Вот структура базы данных:Как выбрать строки на основе значений в других строках
CREATE TABLE `results` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`date` DATETIME NOT NULL ,
`home_score` INT NOT NULL ,
`away_score` INT NOT NULL ,
`home_team_id` INT NOT NULL ,
`away_team_id` INT NOT NULL
);
Так что я хотел бы сделать запросы, как «найти результаты, когда команда выиграла две свои предыдущие домашние игры» - то есть для определенного порядка home_team_id по по дате, а затем выберите каждую строку где в предыдущих двух строках home_score> away_score.
Я знаю, что это немного сложно, поэтому любые указатели на то, как решить эту проблему, будут оценены по весу. В настоящее время у меня есть версия на PHP (выбирает все строки, а затем выполняет этот тип запроса), но производительность очень медленная, и она использует огромный объем памяти (в базе данных содержится более 20 000 строк).
EDIT: Спасибо за пару аккуратных ответов. В идеале, однако, я хотел бы иметь возможность запускать запросы по всем столбцам, а не просто смотреть на W, D или L. Более сложным примером будет «найти все результаты, когда домашняя команда выиграла каждый из своих пяти предыдущих домов игры, по крайней мере, за два мяча, а команда гостей потеряла каждую из своих выездных игр хотя бы по одной цели ».