」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > SQL左連接預過濾表的操作指南

SQL左連接預過濾表的操作指南

發佈於2025-04-21
瀏覽:740

How to Perform a Left Join with a Pre-Filtered Table in SQL?

高效執行SQL左連接,預先篩選表數據

在處理多個表時,通常需要在連接表之前先對其中一個表進行篩選。本例涉及兩個表:客戶表 (Customer) 和條目表 (Entry)。

目標是在執行這兩個表之間的左連接之前,先根據特定類別 'D' 篩選條目表。預期結果是:無論條目表中是否存在相關記錄,都檢索客戶表中的所有記錄;同時,排除條目表中不符合類別條件的記錄。

以下SQL查詢演示瞭如何實現這一點:

SELECT c.Customer, c.State, e.Entry
FROM Customer c
LEFT JOIN Entry e
   ON c.Customer=e.Customer
   AND e.Category='D'

通過將WHERE篩選條件移至JOIN條件中,我們可以在連接之前對條目表應用類別篩選。這確保只有符合類別條件的條目記錄包含在連接結果中。

示例表

客户表 (Customer):

╔══════════╦═══════╗
║ Customer ║ State ║
╠══════════╬═══════╣
║ A        ║ S     ║
║ B        ║ V     ║
║ C        ║ L     ║
╚══════════╩═══════╝

条目表 (Entry):

╔══════════╦═══════╦══════════╗
║ Customer ║ Entry ║ Category ║
╠══════════╬═══════╬══════════╣
║ A        ║  5575 ║ D        ║
║ A        ║  6532 ║ C        ║
║ A        ║  3215 ║ D        ║
║ A        ║  5645 ║ M        ║
║ B        ║  3331 ║ A        ║
║ B        ║  4445 ║ D        ║
╚══════════╩═══════╩══════════╝

結果

╔══════════╦═══════╦═══════╗
║ Customer ║ State ║ Entry ║
╠══════════╬═══════╬═══════╣
║ A        ║ S     ║  5575 ║
║ A        ║ S     ║  3215 ║
║ B        ║ V     ║  4445 ║
║ C        ║ L     ║  NULL ║
╚══════════╩═══════╩═══════╝

總之,通過在JOIN條件中使用AND子句,我們可以在連接表之前對其進行篩選,從而根據指定的條件更精確地檢索數據。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3