首頁 > 資料庫 > mysql教程 > SQL 中的 LEFT JOIN 如何識別一個表中存在的資料而不是另一個表中的資料?

SQL 中的 LEFT JOIN 如何識別一個表中存在的資料而不是另一個表中的資料?

Barbara Streisand
發布: 2025-01-03 02:16:38
原創
516 人瀏覽過

How Can a LEFT JOIN in SQL Identify Data Existing in One Table But Not Another?

使用LEFT JOIN 尋找不存在的資料

在SQL 中,可能需要比較兩個表格並識別一個表格中存在的資料但不是另一個。在檢查遺失的記錄時,通常會遇到這種情況。

請考慮以下表格:

TABLE1

id name address
1 mm 123
2 nn 143

TABLE2

name age
mm 6
oo 9

TABLE2

是找到將TABLE1 與TABLE2 進行比較,找出TABLE1 中不存在的名稱。在這種情況下,TABLE1 中名為「nn」的第二行在 TABLE2 中不存在。

使用 INNER JOIN 的初始嘗試:
SELECT w.*
FROM TABLE1 w
INNER JOIN TABLE2 v
ON w.name <> v.name
登入後複製

將無法檢索所需的內容結果是因為 INNER JOIN 只傳回兩個表中都符合的行。

解決方案在於使用LEFT JOIN相反:
SELECT w.*
FROM TABLE1 w
LEFT JOIN TABLE2 v ON w.name = v.name
WHERE ISNULL(v.name);
登入後複製

LEFT JOIN 執行外連接,這意味著它將返回左表(TABLE1) 中的所有行,無論右表(TABLE2 ) 中是否有符合的行。 ISNULL(v.name) 條件檢查 TABLE1 中的行,其中 TABLE2 中對應的名稱欄位為空,表示該名稱在 TABLE2 中不存在。

輸出將為:
id name address
2 nn 143

此查詢成功從 TABLE1 擷取名稱不存在的「nn」行。

以上是SQL 中的 LEFT JOIN 如何識別一個表中存在的資料而不是另一個表中的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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