分页组件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
可见其中增加了一个子查询,解决了这个问题