基於Eric的解決方案 - 這是我最後的查詢如果其他人有類似的問題 - 謝謝大家的幫助。
SELECT `teams`.`id`, `teams`.`name`,
SUM(`all_wins`.`gp`) AS `gp`,
SUM(`all_wins`.`w`) AS `w`, SUM(`all_wins`.`l`) AS `l`, SUM(`all_wins`.`t`) AS `t`,
SUM(`all_wins`.`ptf`) AS `ptf`, SUM(`all_wins`.`pta`) AS `pta`
FROM (
SELECT
`home_team_id` as `team_id`,
COUNT(`home_score`) AS `gp`,
SUM(IF(`home_score` > `away_score`,1,0)) as `w`,
SUM(IF(`home_score` < `away_score`,1,0)) as `l`,
SUM(IF(`home_score` = `away_score`,1,0)) as `t`,
SUM(IFNULL(`home_score`,0)) as `ptf`,
SUM(IFNULL(`away_score`,0)) as `pta`
FROM `games`
GROUP BY `home_team_id`
UNION ALL
SELECT
`away_team_id` as `team_id`,
COUNT(`home_score`) AS `gp`,
SUM(IF(`away_score` > `home_score`,1,0)) as `w`,
SUM(IF(`away_score` < `home_score`,1,0)) as `l`,
SUM(IF(`away_score` = `home_score`,1,0)) as `t`,
SUM(IFNULL(`away_score`,0)) as `ptf`,
SUM(IFNULL(`home_score`,0)) as `pta`
FROM `games`
GROUP BY `away_team_id`
) `all_wins`
LEFT JOIN `teams` ON `all_wins`.`team_id` = `teams`.`id`
GROUP BY `all_wins`.`team_id`
ORDER BY SUM(`all_wins`.`w`) DESC, SUM(`all_wins`.`ptf`) DESC
來源
2010-05-21 04:02:30
Dan
這是美式足球而不是足球吧?我在這裏是英式足球和足球==足球; o)我是這麼認爲的,並且缺乏3分和1分的平局?你甚至可以得到平局還是總是有加班? – 2010-05-20 17:50:22
好的......我花了大約15分鐘把查詢放在一起,但不幸的是,你不能在計算器上對難題進行評分:D – Simon 2010-05-20 17:54:08
@Dave:加班,突然死亡......無論如何獲得勝利者: ) – 2010-05-20 17:56:40