首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL 多表 JOIN 查詢為空:UNION 後 ORDER BY 作用範圍與分頁邏輯錯誤

     編輯:程式設計綜合問答

原 SQL 問題:

  1. sql1 UNION sql2 ORDER BY xx 中 ORDER BY 僅對第二條語句生效,需包裹 (sql1 UNION sql2) ORDER BY xx。
  2. Hibernate setFirstResult/setMaxResults 對複雜 UNION 查詢分頁可能生成無效 SQL(如子查詢中 ORDER BY)。

建議重構

  • 將 UNION 查詢封裝為視圖或 CTE,再在外層分頁。
  • 或應用層組裝兩條簡單查詢結果後內存分頁(數據量小時)。
  • 長期方案:建立匯總表/物化視圖,定時刷新,前端直接分頁查詢匯總表。

複雜 JOIN+UNION+分頁在 ORM 層極易產生錯誤 SQL,建議下推至資料庫層解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved