求助!关于MySQL数据库相同SQL语句查询与JAVA中查询结果不相符

2019-03-16 19:45发布

我有一条查询语句是这么写的:

SELECT student., sum(rpresent) times, sum(rpresent) 5 score

FROM record JOIN student ON rsid = sid

WHERE rcid = 'A1004'

GROUP BY sid

(汇总每个学生对应的rpresent并记分)

我发现它在Navicat中可以得到正确结果:如图(https://img2018.cnblogs.com/q/1198070/201901/1198070-20190128230112604-2011188067.png)

但是我在Springboot Mybatis中使用它时,只能得到2条记录,当rpresent都相同时,只有一条记录。
mapper文件中配置的sql语句
SELECT student.,sum(rpresent) times,sum(rpresent) #{score} score

FROM record JOIN student ON rsid = sid

WHERE rcid = #{cid}

GROUP BY sid

就是说rpresent有多少种取值,就只有几条记录

但我想要的结果是统计每个学生的所有rpresent的sum,该怎么做?

5条回答
啃猪蹄的小仙女
2楼-- · 2019-03-16 20:33

如果是同样的语句执行的结果肯定一样 你现在结果不一样了 肯定是mybatis实际的语句有问题。你应该打开debug把实际执行的语句拿出来看一下

查看更多
ゆ 、 Hurt°
3楼-- · 2019-03-16 20:33

sum(rpresent) #{score} 这个是不是少了乘号

查看更多
Bombasti
4楼-- · 2019-03-16 20:33

解决了,网上查过,是Mybatis本身的问题。解决办法是再封装一个对象。问题有点久了,具体记不太清了

查看更多
【Aperson】
5楼-- · 2019-03-16 20:35

sum(rpresent) 5 score
这种写法是什么意思

查看更多
我想做一个坏孩纸
6楼-- · 2019-03-16 20:37

这个问题解决了吗?
第一:参数和使用sql直接执行是一致的嘛?
第二:sql我感觉是不是应该用right join student,以学生表为主表。如果使用join的话,一个学生在record中没有记录,最终也不会查询出来的呀。

查看更多
登录 后发表回答