首頁 > 資料庫 > mysql教程 > 如何在 SQL 中對預過濾表執行左連線?

如何在 SQL 中對預過濾表執行左連線?

Susan Sarandon
發布: 2025-01-14 13:31:46
原創
743 人瀏覽過

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

高效率執行SQL左連接,預先篩選表格資料

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

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

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

<code class="language-sql">SELECT c.Customer, c.State, e.Entry
FROM Customer c
LEFT JOIN Entry e
   ON c.Customer=e.Customer
   AND e.Category='D'</code>
登入後複製

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

範例表

<code>客户表 (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        ║
╚══════════╩═══════╩══════════╝</code>
登入後複製

結果

<code>╔══════════╦═══════╦═══════╗
║ Customer ║ State ║ Entry ║
╠══════════╬═══════╬═══════╣
║ A        ║ S     ║  5575 ║
║ A        ║ S     ║  3215 ║
║ B        ║ V     ║  4445 ║
║ C        ║ L     ║  NULL ║
╚══════════╩═══════╩═══════╝</code>
登入後複製

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

以上是如何在 SQL 中對預過濾表執行左連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板