首页 新闻 会员 周边 捐助

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

0
悬赏园豆:40 [已关闭问题] 解决于 2019-03-16 20:39

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

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,该怎么做?

╄冷丶夜♂的主页 ╄冷丶夜♂ | 初学一级 | 园豆:47
提问于:2019-01-28 23:04

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

zycyc 5年前
< >
分享
其他回答(3)
0

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

收获园豆:10
一腿狗毛 | 园豆:326 (菜鸟二级) | 2019-01-31 11:37
0

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

收获园豆:10
zycyc | 园豆:285 (菜鸟二级) | 2019-02-21 10:47
0

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

收获园豆:10
是小毛吖 | 园豆:314 (菜鸟二级) | 2019-03-11 11:52
0

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

╄冷丶夜♂ | 园豆:47 (初学一级) | 2019-03-16 20:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册