最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis同一張表多次連接查詢(xún)相同列賦值問(wèn)題小結(jié)

 更新時(shí)間:2017年01月24日 10:39:08   作者:lylyyg  
這篇文章主要介紹了mybatis同一張表多次連接查詢(xún)相同列賦值問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下

最近遇到的一些問(wèn)題總結(jié):

1. MySQL數(shù)據(jù)庫(kù)同一張表做四次左連接查詢(xún)數(shù)據(jù)冗余。

a. mysql數(shù)據(jù)庫(kù)連接查詢(xún)

b. mysql表數(shù)據(jù)去重

2. mybatis查詢(xún)相同列賦值重復(fù)問(wèn)題。

a. 使用mybatis強(qiáng)大的resultMap

b. mysql數(shù)據(jù)查詢(xún)別名

數(shù)據(jù)庫(kù)表為

Create Table

CREATE TABLE `STUDENT_SCORE` (
 `score_id` int(11) unsigned NOT NULL AUTO_INCREMENT,//主鍵
 `test_id` int(11) NOT NULL,//標(biāo)識(shí)考試信息
 `course` varchar(45) DEFAULT NULL,//課程名
 `score` float DEFAULT NULL,//分?jǐn)?shù)
 PRIMARY KEY (`score_id`)
)

現(xiàn)在想要查詢(xún)近四次考試改名同學(xué)的考試情況對(duì)比數(shù)據(jù),查詢(xún)語(yǔ)句如下:

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語(yǔ)句寫(xiě)入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>

以上查詢(xún)執(zhí)行結(jié)果全部未test_id=id0時(shí)的數(shù)據(jù),將score1.test_idscore2.test_id添加至查詢(xún)結(jié)果發(fā)現(xiàn)四個(gè)id值全部都為id0。

推測(cè)由于使用同一個(gè)表進(jìn)行連接查詢(xún),列名相同,賦值時(shí)賦了相同的值。

在網(wǎng)上搜索有看到通過(guò)在resultMap中配置<collection><asociation>解決此問(wèn)題。

嘗試配置resultMap未果。

通過(guò)給表查詢(xún)添加別名將以上查詢(xún)語(yǔ)句修改如下,解決參數(shù)賦值沖突的問(wèn)題。

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

總結(jié):

1、處理問(wèn)題時(shí)力求正確簡(jiǎn)潔,切記多個(gè)問(wèn)題混雜在一起影響問(wèn)題定位與解決思路。

2、在進(jìn)行多個(gè)表查詢(xún)時(shí),盡量使用別名對(duì)表進(jìn)行重命名加以區(qū)分。

3、使用group by去重,后面跟哪一列對(duì)哪一列去重。

以上所述是小編給大家介紹的mybatis同一張表多次連接查詢(xún)相同列賦值問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 本地jvm執(zhí)行flink程序帶web ui的操作

    本地jvm執(zhí)行flink程序帶web ui的操作

    這篇文章主要介紹了本地jvm執(zhí)行flink程序帶web ui的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • IDEA使用SpringAssistant插件創(chuàng)建SpringCloud項(xiàng)目

    IDEA使用SpringAssistant插件創(chuàng)建SpringCloud項(xiàng)目

    IDEA 功能強(qiáng)大,可以用來(lái)高效的開(kāi)發(fā)應(yīng)該程序。它還支持第三方插件、用戶(hù)可以根據(jù)需要添加自己喜歡的插件。下面介紹如何使用 IDEA 創(chuàng)建 Spring Cloud 項(xiàng)目
    2021-06-06
  • Mybatis?TypeHandler接口及繼承關(guān)系示例解析

    Mybatis?TypeHandler接口及繼承關(guān)系示例解析

    這篇文章主要為大家介紹了Mybatis?TypeHandler接口及繼承關(guān)系示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Spring注解驅(qū)動(dòng)之ApplicationListener用法解讀

    Spring注解驅(qū)動(dòng)之ApplicationListener用法解讀

    這篇文章主要介紹了Spring注解驅(qū)動(dòng)之ApplicationListener用法解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • mybatis中mapper代理的生成過(guò)程全面分析

    mybatis中mapper代理的生成過(guò)程全面分析

    這篇文章主要為大家介紹了mybatis中mapper代理的生成過(guò)程全面分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • SpringBoot采用AJAX實(shí)現(xiàn)異步發(fā)布帖子詳解

    SpringBoot采用AJAX實(shí)現(xiàn)異步發(fā)布帖子詳解

    Ajax是一種web應(yīng)用技術(shù),可以借助客戶(hù)端腳本(javascript)與服務(wù)端應(yīng)用進(jìn)行異步通訊,獲取服務(wù)端數(shù)據(jù)以后,可以進(jìn)行局部刷新,進(jìn)而提高數(shù)據(jù)的響應(yīng)和渲染速度。所有的Ajax請(qǐng)求都會(huì)基于DOM(HTML元素)事件,通過(guò)XHR(XMLHttpRequest)對(duì)象實(shí)現(xiàn)與服務(wù)端異步通訊局部更新
    2022-08-08
  • 你真的了解java單例模式了嗎?

    你真的了解java單例模式了嗎?

    這篇文章主要介紹了你真的了解java單例模式了嗎?實(shí)際上單例模式有著好幾個(gè)變種,并且多線(xiàn)程中涉及到線(xiàn)程安全問(wèn)題,,需要的朋友可以參考下
    2019-06-06
  • javafx實(shí)現(xiàn)時(shí)鐘效果

    javafx實(shí)現(xiàn)時(shí)鐘效果

    這篇文章主要為大家詳細(xì)介紹了javafx實(shí)現(xiàn)時(shí)鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Java的內(nèi)存機(jī)制詳解

    Java的內(nèi)存機(jī)制詳解

    本文主要介紹了Java的內(nèi)存機(jī)制的相關(guān)知識(shí),具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-03-03
  • SpringCloud的Config配置中心詳解

    SpringCloud的Config配置中心詳解

    這篇文章主要介紹了SpringCloud的Config配置中心詳解,SpringCloud Config為微服務(wù)架構(gòu)中的微服務(wù)提供集中化的外部配置支持,配置服務(wù)器為各個(gè)不同微服務(wù)應(yīng)用的所有環(huán)境提供了一個(gè)中心化的外部配置,需要的朋友可以參考下
    2023-07-07

最新評(píng)論

华宁县| 琼结县| 滕州市| 清新县| 安顺市| 巴南区| 延津县| 蓝田县| 鄯善县| 林口县| 荔波县| 明水县| 蓝田县| 泰州市| 万宁市| 勃利县| 安化县| 津市市| 红河县| 克山县| 方正县| 齐河县| 阳谷县| 新晃| 射阳县| 顺昌县| 望都县| 甘孜| 南开区| 昌宁县| 洛阳市| 徐汇区| 察雅县| 武夷山市| 宿迁市| 华阴市| 增城市| 常山县| 广南县| 遵义市| 宝坻区|