【发布时间】:2010-06-21 08:23:49
【问题描述】:
我有一个充满运动成绩的数据库。我想根据之前结果的一些特征选择一些结果。这是数据库结构:
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。一个更复杂的示例是“查找主队在前五个主场均获胜的所有结果至少两场比赛,而客队每场客场比赛都输掉至少一球。”
【问题讨论】: