首頁 > 資料庫 > mysql教程 > 如何從一個表中選擇另一個表中不存在的不同值?

如何從一個表中選擇另一個表中不存在的不同值?

DDD
發布: 2025-01-19 16:31:10
原創
250 人瀏覽過

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

提取在另一個表中找不到的唯一記錄:詳細指南

一項常見的資料庫任務涉及從一個表中檢索另一個表中不存在的唯一條目。 我們舉個例子來說明:

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

我們的目標是從 table2 中選擇未出現在 table1 中的資料。 一個天真的方法可能看起來像這樣:

<code>SELECT name
FROM table2
-- excluding those in table1</code>
登入後複製

這還不夠;需要更複雜的方法來準確識別不同的不匹配記錄。

有效解:LEFT JOIN 和 IS NULL

以下查詢使用 LEFT JOIN 基於 table1 列連結 table2name 中的行。 然後 IS NULL 條件過濾掉任何匹配對:

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

詳細細分:

查詢功能如下:

  1. 它選擇 table1 中的所有條目,並嘗試將它們與 table2 中的對應條目連接。
  2. WHERE 子句標識 table2.name 列為 NULL 的行。 NULL 值表示對應的 table1 行在 table2 中沒有匹配項。
  3. 最後,它只傳回結果中的 name 列,保證所有選取行都存在於 table1 中。

重要提示:

雖然通常在支援 ANSI 92 SQL 的眾多資料庫系統中高效且相容,但這種方法可能並不總是最快的。 替代方案(例如使用 NOT IN 運算子)可以在特定情況下提供更好的效能。

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

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