mybatis的分頁是經過攔截器從新拼接SQL,所以分頁語句基本都是包含在整個SQL語句外面,那麼對於多表查詢就會出現查詢結果不許確的結果,A與B爲一對多關係,A爲主表,當使用連接語句查詢A和B時,因爲A對應的B可能有多條,所以實際的結果是結果集小於A表查詢的結果集,採用以下解決方式:mybatis
先經過group by id 獲得A表的正確的數據集的ID,而後再降獲得的ID做爲條件再次查找獲得數據集spa
select a.id from A a left join B b on b.no = a.no where ... group by a.id limit 0, 10it
select a.*,b.* from A a left join B b on b.no = a.no where ... and a.id in(上一條語句獲得的id)select
獲得正確的分頁數據集分頁