首頁 > 資料庫 > mysql教程 > 如何從一張表中選擇另一張表中不存在的記錄?

如何從一張表中選擇另一張表中不存在的記錄?

DDD
發布: 2025-01-19 16:27:09
原創
375 人瀏覽過

How to Select Records from One Table That Don't Exist in Another?

辨識資料庫表中的遺失記錄

資料庫查詢經常需要從一個表中檢索在另一個表中缺少對應條目的資料。讓我們用一個例子來說明這一點:

場景:

我們有兩個表,“table1”和“table2”,其結構如下:

<code>table1 (id, name)
table2 (id, name)</code>
登入後複製

目標:

我們的目標是從「table2」中提取「table1」中不存在的「name」值。

一個天真的方法可能是:

<code>SELECT name
FROM table2
-- where name is not in table1</code>
登入後複製

不幸的是,這個 SQL 查詢不完整,不會產生預期的結果。

有效的解決方案:

正確的方法是使用LEFT JOIN

<code class="language-sql">SELECT t2.name
FROM table2 t2
LEFT JOIN table1 t1 ON t1.name = t2.name
WHERE t1.name IS NULL;</code>
登入後複製

說明:

  • LEFT JOIN: 這可確保「table2」中的所有行都包含在結果集中,無論「table1」中的符合行為何。
  • WHERE 子句: 條件 WHERE t1.name IS NULL 過濾結果,僅保留「table2」中「table1」中沒有對應「名稱」的行。
  • 欄位選擇:查詢從「table2」中選擇「name」列,因為這是最終結果中該表中保證存在的唯一欄位。

這種LEFT JOIN技術廣泛相容於各種資料庫系統,提供了一種強大的方法來識別表之間遺失的記錄。

以上是如何從一張表中選擇另一張表中不存在的記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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