mysql – SQLzoo JOIN教程#13
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – SQLzoo JOIN教程#13,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1077字,纯文字阅读大概需要2分钟。
内容图文
我一直在研究SQLzoo问题,但是在JOIN教程问题#13中的最后一个问题上遇到了问题 – 列出每个匹配的每个匹配所显示的目标.
链接:http://sqlzoo.net/wiki/The_JOIN_operation
在他们提供的示例代码中,它使用了一个案例.我修改它像这样:
SELECT game.mdate, game.team1,
CASE WHEN goal.teamid=game.team1 THEN 1 ELSE 0 END score1, game.team2,
CASE WHEN goal.teamid=game.team2 THEN 1 ELSE 0 END score2
FROM game, goal WHERE game.id=goal.matchid
GROUP BY game.mdate, goal.matchid, game.team1, game.team2
他们建议在score1 / score2上使用SUM函数将提供答案.我对如何在SQL中创建的这两列使用SUM函数感到困惑.
任何人都可以提供一个关于如何做或提到如何以更好的方式编写此SQL查询的提示?
解决方法:
好吧,你需要对这些列进行SUM(SUM是一个聚合函数,这就是你在那里有GROUP BY的原因).至于以更好的方式编写查询,您需要丢失旧的隐式JOIN样式并使用ANSI显式样式:
SELECT game.mdate,
game.team1,
SUM(CASE WHEN goal.teamid=game.team1 THEN 1 ELSE 0 END) score1,
game.team2,
SUM(CASE WHEN goal.teamid=game.team2 THEN 1 ELSE 0 END) score2
FROM game
INNER JOIN goal
ON game.id=goal.matchid
GROUP BY game.mdate, goal.matchid, game.team1, game.team2
内容总结
以上是互联网集市为您收集整理的mysql – SQLzoo JOIN教程#13全部内容,希望文章能够帮你解决mysql – SQLzoo JOIN教程#13所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。