mybatis同一张表多次连接查询相同列赋值问题小结
发布时间 - 2026-01-10 22:46:29 点击率:次最近遇到的一些问题总结:

1. MySQL数据库同一张表做四次左连接查询数据冗余。
a. mysql数据库连接查询
b. mysql表数据去重
2. mybatis查询相同列赋值重复问题。
a. 使用mybatis强大的resultMap
b. mysql数据查询别名
数据库表为
Create Table
CREATE TABLE `STUDENT_SCORE` ( `score_id` int(11) unsigned NOT NULL AUTO_INCREMENT,//主键 `test_id` int(11) NOT NULL,//标识考试信息 `course` varchar(45) DEFAULT NULL,//课程名 `score` float DEFAULT NULL,//分数 PRIMARY KEY (`score_id`) )
现在想要查询近四次考试改名同学的考试情况对比数据,查询语句如下:
SELECT score0.test_id, core0.course, score0.score, score1.score, score2.score, score3.score FROM (SELECT * FROM STUDENT_SCORE WHERE test_id='11') score0 LEFT JOIN (SELECT * FROM STUDENT_SCORE WHERE test_id='12') score1 ON score0.course = score1.course LEFT JOIN (SELECT * FROM STUDENT_SCORE WHERE test_id='13') score2 ON score0.course = score2.course LEFT JOIN (SELECT * FROM STUDENT_SCORE WHERE test_id='14') score3 ON score0.course = score3.course
使用相同的sql语句写入mybatis的xml中:
<select id="findVCCFrameworkCompareData" parameterType="java.util.HashMap" resultMap="frameworkCompareMapper">
SELECT
score0.test_id,
core0.course,
score0.score,
score1.score,
score2.score,
score3.score
FROM (SELECT * FROM STUDENT_SCORE WHERE test_id=#{id0}) score0
LEFT JOIN (SELECT * FROM STUDENT_SCORE WHERE test_id=#{id1}) score1
ON score0.course = score1.course
LEFT JOIN (SELECT * FROM STUDENT_SCORE WHERE test_id=#{id2}) score2
ON score0.course = score2.course
LEFT JOIN (SELECT * FROM STUDENT_SCORE WHERE test_id=#{id3}) score3
ON score0.course = score3.course
</select>
以上查询执行结果全部未test_id=id0时的数据,将score1.test_id与score2.test_id添加至查询结果发现四个id值全部都为id0。
推测由于使用同一个表进行连接查询,列名相同,赋值时赋了相同的值。
在网上搜索有看到通过在resultMap中配置<collection>和<asociation>解决此问题。
尝试配置resultMap未果。
通过给表查询添加别名将以上查询语句修改如下,解决参数赋值冲突的问题。
SELECT
score0.test_id,
core0.course,
score0.score,
score1.score,
score2.score,
score3.score
FROM (SELECT * FROM STUDENT_SCORE score0 WHERE score0.test_id=#{score0}) score0
LEFT JOIN (SELECT * FROM STUDENT_SCORE score1 WHERE score1.test_id=#{score1}) score1
ON score0.course = score1.course
LEFT JOIN (SELECT * FROM STUDENT_SCORE score2 WHERE score2.test_id=#{score2}) score2
ON score0.course = score2.course
LEFT JOIN (SELECT * FROM STUDENT_SCORE score3 WHERE score3.test_id=#{score3}) score3
ON score0.course = score3.course
总结:
1、处理问题时力求正确简洁,切记多个问题混杂在一起影响问题定位与解决思路。
2、在进行多个表查询时,尽量使用别名对表进行重命名加以区分。
3、使用group by去重,后面跟哪一列对哪一列去重。
以上所述是小编给大家介绍的mybatis同一张表多次连接查询相同列赋值问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# mybatis
# 赋值
# MyBatis的嵌套查询解析
# Java的MyBatis框架中实现多表连接查询和查询结果分页
# Mybatis中连接查询和嵌套查询实例代码
# 多个
# 小编
# 在此
# 给大家
# 将以
# 都为
# 所述
# 查询结果
# 给我留言
# 感谢大家
# 重命名
# 主键
# 疑问请
# 有任何
# 数据查询
# 在网上
# score_id
# score
# int
# STUDENT_SCORE
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
网站制作软件免费下载安装,有哪些免费下载的软件网站?
Laravel如何使用Eloquent进行子查询
,网页ppt怎么弄成自己的ppt?
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
浅谈javascript alert和confirm的美化
Bootstrap整体框架之CSS12栅格系统
java获取注册ip实例
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
音响网站制作视频教程,隆霸音响官方网站?
javascript中对象的定义、使用以及对象和原型链操作小结
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
如何在新浪SAE免费搭建个人博客?
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
潮流网站制作头像软件下载,适合母子的网名有哪些?
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
如何生成腾讯云建站专用兑换码?
Laravel distinct去重查询_Laravel Eloquent去重方法
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
Laravel如何处理表单验证?(Requests代码示例)
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
BootStrap整体框架之基础布局组件
微信小程序 canvas开发实例及注意事项
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Laravel用户密码怎么加密_Laravel Hash门面使用教程
Laravel如何处理文件下载请求?(Response示例)
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
韩国服务器如何优化跨境访问实现高效连接?
UC浏览器如何设置启动页 UC浏览器启动页设置方法
如何快速查询网址的建站时间与历史轨迹?
浅述节点的创建及常见功能的实现
JS去除重复并统计数量的实现方法
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
Linux后台任务运行方法_nohup与&使用技巧【技巧】
大同网页,大同瑞慈医院官网?
网站页面设计需要考虑到这些问题
如何在建站之星网店版论坛获取技术支持?
Laravel如何创建自定义Facades?(详细步骤)
如何在服务器上配置二级域名建站?
如何在万网ECS上快速搭建专属网站?
千库网官网入口推荐 千库网设计创意平台入口
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】

