我在mysql中有两个这样的表
第一桌:学生
id Name roll
1 vivek 22222
2 abc 33333
第二张table:费用
id amount roll
1 3540 22222
2 28140 22222
我想跑
SELECT roll_no,sum(amount) as deposit
FROM stu_profile
join (select roll,amount,sum(amount) from fee group by roll) as fee on roll=roll_no
WHERE 1 and roll='62032'
我想要这个输出。
roll deposit
22222 31680
但我明白了
roll deposit
22222 3540
1条答案
按热度按时间rryofs0p1#
您可以通过以下操作获得所需的结果:
但如果您真的需要两个表都包含在内,请尝试以下方法:
您不需要在外部查询中求和,因为您将内部查询减少到每个查询只有一行
roll
你也只过滤一卷。顺便说一下,只有在mysql中,这才是有效的查询:
在标准sql中,不能只按一列进行分组
roll
但是输出2列(加上聚合)。正是由于这个原因,您最初得到的结果不正确,因为mysql(糟糕地)允许这种非标准的groupby语法。只研究\u full \u group \u by