【MyBatis】分頁組件PageHelper和SQLServer的多表關聯分頁查詢問題


分頁組件PageHelper和SQLServer的多表關聯分頁查詢問題

原來使用4.1.7,當2個表關聯查詢的時候如果有同名,Select的時候給予了別名,使用PageHelper.orderBy("別名"),會出現錯誤

因為生成的語句是

SELECT TOP 3 Name,CTypeId FROM 
(
SELECT ROW_NUMBER() OVER ( ORDER BY TypeId DESC) PAGE_ROW_NUMBER, A.Name,A.TypeId as CTypeId FROM Customer A 
LEFT JOIN CustomerType B ON A.TypeId = B.TypeId
) AS PAGE_TABLE_ALIAS 
WHERE PAGE_ROW_NUMBER > 0 
ORDER BY PAGE_ROW_NUMBER  

因為(ORDER BY TypeId DESC)中TypeId是不知道哪個表的

后來查看更新記錄,后面的版本更新了這個問題

現在使用最新版本5.1.3,生成的語句是

SELECT TOP 3 Name,CTypeId FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY CTypeId DESC) 
    PAGE_ROW_NUMBER, Name, CTypeId FROM (
        SELECT A.Name, A.TypeId AS CTypeId 
        FROM Customer A LEFT JOIN CustomerType B ON A.TypeId = B.TypeId
    ) AS PAGE_TABLE_ALIAS
) AS PAGE_TABLE_ALIAS 
WHERE PAGE_ROW_NUMBER > 0 ORDER BY PAGE_ROW_NUMBER 

可見其中增加了一個子查詢,解決了這個問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM