我有一个充满了运动结果的数据库。我想根据以前的结果的某些特征选择一些结果。这里的数据库结构:如何根据其他行中的值选择行
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行)。
编辑:感谢几个整洁的答案。不过,理想情况下,我希望能够在所有栏目上进行查询,而不仅仅是看W,D或L.一个更复杂的例子是“找到所有的结果,其中主队赢得了他们之前五个家中的每一个比赛至少有两个进球,而客队至少已经输掉了一个进球。“