a****k 发帖数: 117 | 1 题目在这:
http://www.sqlzoo.net/wiki/The_JOIN_operation
第十三题:
我的solution:
SELECT a.mdate, a.team1, SUM(CASE WHEN a.team1=b.teamid THEN 1 ELSE 0 END)
AS score1, a.team2, SUM(CASE WHEN a.team2=b.teamid THEN 1 ELSE 0 END) AS
score2 FROM game a LEFT JOIN goal b ON a.id = b.matchid GROUP BY b.matchid
ORDER BY a.mdate, a.id, a.team1, a.team2
这道题关键是不要漏掉0:0的比赛。我这个解法retrieve了24号的这场比赛,但为什么
27号的0:0没有retrieve出来? 有谁通过了sqlzoo的测试吗?多谢!
24 June 2012 ENG 0 ITA 0
27 June 2012 POR 0 ESP 0 | p****r 发帖数: 46 | 2 把Group By里的b.matchid 改成a.id就对了
我也不明白为什么你的结果里有24号的0:0结果却没有27号的。 |
|