You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何不同JOIN语句会对ORDER BY子句产生不同影响?

SQLZOO第13道JOIN练习题排坑

我正在SQLZOO上学习SQL,第13道练习题一直卡着我,直到试出了解决方案。一开始我怀疑是ORDER BY子句写法错误或者数据类型不对,后来找到了可行的解决方案——只修改了JOIN语句并移除ORDER BY子句就匹配了要求,但至今还是搞不懂最初的ORDER BY为什么没法正确对日期排序。

相关习题集来自SQLZOO的《JOIN操作》章节。

我的初始代码

SELECT mdate,
  team1,
  SUM(CASE WHEN teamid=team1 THEN 1 ELSE 0 END) score1,
  team2,
  SUM(CASE WHEN teamid=team2 THEN 1 ELSE 0 END) score2
FROM game JOIN goal ON matchid = id
GROUP BY mdate, matchid, team1, team2
ORDER BY mdate, matchid, team1, team2

解决方案代码

SELECT mdate, 
   team1,
   SUM(CASE WHEN teamid = team1 THEN 1 ELSE 0 END) score1,
   team2,
   SUM(CASE WHEN teamid = team2 THEN 1 ELSE 0 END) score2
FROM game LEFT JOIN goal ON matchid = id 
GROUP BY mdate, matchid, team1, team2

内容的提问来源于stack exchange,提问作者professor.luther.ratigan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 03:01:00