首頁 > 資料庫 > mysql教程 > 如何在沒有對應電話簿條目的情況下尋找通話?

如何在沒有對應電話簿條目的情況下尋找通話?

Patricia Arquette
發布: 2025-01-22 18:40:10
原創
710 人瀏覽過

How to Find Calls Without Corresponding Phone Book Entries?

辨識不符的通話記錄

本指南示範如何在「Call」表中尋找「Phone_book」表中缺少對應條目的通話記錄。 目標是識別來自電話簿中未列出的號碼的通話。 我們將探索幾種 SQL 方法來實現這一目標。

方法一:使用NOT IN

此方法使用 NOT IN 子句過濾掉「Phone_book」表中存在的電話號碼。

<code class="language-sql">SELECT *
FROM Call
WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book);</code>
登入後複製

此查詢從「Call」表中選取所有資料列,其中在「Phone_book」表的 phone_number 清單中找不到 phone_number

方法二:使用NOT EXISTS

此方法利用帶有 NOT EXISTS 的子查詢來檢查是否有匹配的電話號碼。

<code class="language-sql">SELECT *
FROM Call
WHERE NOT EXISTS
  (SELECT 1
   FROM Phone_book
   WHERE Phone_book.phone_number = Call.phone_number);</code>
登入後複製

子查詢搜尋符合項目。 如果未找到符合項目 (NOT EXISTS),則外部查詢將包含該記錄。

方法三:利用LEFT OUTER JOIN

此方法使用 LEFT OUTER JOIN 組合兩個表,然後過濾「Phone_book」表中的空值。

<code class="language-sql">SELECT *
FROM Call
LEFT OUTER JOIN Phone_Book
  ON Call.phone_number = Phone_book.phone_number
WHERE Phone_book.phone_number IS NULL;</code>
登入後複製

A LEFT OUTER JOIN 傳回「Call」表中的所有行。 如果「Phone_book」中沒有符合項,「Phone_book」中對應的欄位將為NULLWHERE 子句過濾以僅顯示這些不符合的行。 這種方法通常因其效能優勢而受到青睞,尤其是對於較大的資料集。

以上是如何在沒有對應電話簿條目的情況下尋找通話?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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