首页 / MYSQL / 具有相同ID的MySQL SUM
具有相同ID的MySQL SUM
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了具有相同ID的MySQL SUM,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1256字,纯文字阅读大概需要2分钟。
内容图文
![具有相同ID的MySQL SUM](/upload/InfoBanner/zyjiaocheng/881/b704fcc068d24f1c8f40689fc9e11987.jpg)
抱歉,我只学习了PHP& MySQL,我已经使用谷歌搜索了一个多星期,但没有找到任何答案.
我创建了一个简单的财务脚本,该表如下所示:
table_a
aid | value
1 | 100
2 | 50
3 | 150
table_b
bid | aid | value
1 | 1 | 10
2 | 1 | 15
3 | 2 | 5
4 | 2 | 10
5 | 3 | 25
6 | 3 | 40
我想要这样的结果
No | ID | Total | Balance
1 | 1 | 10 | 90
2 | 1 | 25 | 75
3 | 2 | 5 | 45
4 | 2 | 15 | 35
5 | 3 | 25 | 125
6 | 3 | 65 | 85
有人可以帮助我解决我的问题吗?
谢谢
解决方法:
SELECT
tb.bid as No,
ta.aid as ID,
tb.value as Total,
ta.value-tb.total as Balance
FROM
table_a AS ta
INNER JOIN (
SELECT
tbx.aid AS aid,
tbx.bid AS bid,
tbx.value AS value,
SUM(tby.value) AS total
FROM
table_b AS tbx
INNER JOIN table_b AS tby ON tby.aid=tbx.aid AND tby.bid<=tbx.bid
GROUP BY tbx.bid
ORDER BY tbx.bid
) AS tb ON tb.aid=ta.aid
ORDER BY tb.bid
正如@Quassnoi指出的那样,这对于MySQL来说不是很有效.我尝试使用怪胎连接而不是子查询,因为内部查询本身就可以使用.
编辑
对此引起了一些兴趣,发现连接版本的速度是@Quassnoi的子查询版本的两倍……有人知道为什么会这样吗?
编辑
回答第二个问题(在下面的评论中):
SELECT
table_a.aid AS aid,
SUM(table_b.value) AS Total,
table_a.value-SUM(table_b.value) AS Balance
FROM
table_a
INNER JOIN table_b ON table_a.aid=table_b.aid
GROUP BY table_a.aid
内容总结
以上是互联网集市为您收集整理的具有相同ID的MySQL SUM全部内容,希望文章能够帮你解决具有相同ID的MySQL SUM所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】