利用LEFT JOIN選擇一個表格中不存在於另一個表格中的記錄
在處理資料庫中的多個表時,確定一個表中哪些記錄不存在於另一個表中是一項常見任務。本文將探討如何使用SQL查詢來完成此任務。
假設有兩個表,table1和table2,兩者都包含名為id和name的欄位。目標是從table2中選擇所有在table1中未出現的名稱。
傳統方法
最初提供的查詢嘗試直接從table2中選擇不在table1中的名稱:
<code class="language-sql">SELECT name FROM table2 -- that are not in table1 already</code>
但是,此查詢依賴可能並非普遍可用的特定資料庫功能。
LEFT JOIN解決方案
相反,我們可以使用LEFT JOIN來有效地執行此操作:
<code class="language-sql">SELECT t1.name FROM table1 t1 LEFT JOIN table2 t2 ON t2.name = t1.name WHERE t2.name IS NULL</code>
解釋
在這個查詢中,我們透過比較它們的name列來連接table1(別名為t1)和table2(別名為t2)。 LEFT JOIN保留table1中的所有行,並傳回table2中的符合行。對於table1中在table2中沒有符合行的行,table2中的符合行將為空(NULL)。
最後,我們使用WHERE子句只選擇結果中table2中的符合行為NULL的行。這確保我們只選擇table2中不存在於table1中的名稱。
LEFT JOIN方法的優點
LEFT JOIN方法有以下優點:
以上是如何使用 LEFT JOIN 找出一個表中不存在於另一個表中的記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!