zoukankan      html  css  js  c++  java
  • Mybatis oracle多表联合查询分页数据重复的问题

    Mybatis oracle多表联合查询分页数据重复的问题

    多表联合查询分页获取数据时出现一个诡异的现象;数据总条数正确,但有些记录多了,有些记录却又少了甚至没了。针对这个问题找了好久,最后发现是由于多个排序字段不唯一,同样的排序顺序每次运行返回的结果顺序不一致,导致这样的现象出现。

    SELECT TEMP_.*
      FROM (select temp.*, ROWNUM ROWNUM_
              from (SELECT
                           t2.ID
                      FROM tableA t, tableB t2
                     WHERE t.ID = t2.AID
                       and t2.STATUS != '001'
                     ORDER BY t.CREATE_TIME DESC, t2.MIN_VALUE ASC) temp
             where ROWNUM <= 10) TEMP_
     WHERE ROWNUM_ > 0
    

    增加排序的唯一性,修改为

    SELECT TEMP_.*
      FROM (select temp.*, ROWNUM ROWNUM_
              from (SELECT
                           t2.ID
                      FROM tableA t, tableB t2
                     WHERE t.ID = t2.AID
                       and t2.STATUS != '001'
                     ORDER BY t.CREATE_TIME DESC, t2.MIN_VALUE ASC, t2.ID) temp
             where ROWNUM <= 10) TEMP_
     WHERE ROWNUM_ > 0
    
  • 相关阅读:
    PKU 1860 Currency Exchange 最短路 bellman
    PKU 3259 Wormholes 最短路 bellman
    bzoj3514
    bzoj2594
    bzoj3901
    bzoj2843&&1180
    bzoj2631
    bzoj2049
    bzoj2002
    bzoj1146
  • 原文地址:https://www.cnblogs.com/rwxwsblog/p/6287830.html
Copyright © 2011-2022 走看看