首頁 >資料庫 >mysql教程 >如何使用 SQL 查詢識別未註冊的呼叫者?

如何使用 SQL 查詢識別未註冊的呼叫者?

Patricia Arquette
Patricia Arquette原創
2025-01-22 18:39:11657瀏覽

How to Identify Unregistered Callers Using SQL Queries?

辨識未知來電者:未註冊號碼的 SQL 技術

本文示範如何使用 SQL 查詢識別電話簿資料庫中未列出的號碼的電話。 我們將探索幾種有效的方法來實現這一目標。

場景:

考慮這些表格:

表:Phone_book

id name phone_number
1 John 111111111111
2 Jane 222222222222

表:Call

id date phone_number
1 0945 111111111111
2 0950 222222222222
3 1045 333333333333

目標是尋找來自號碼的來電,而不是中的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>

方法2:NOT EXISTS子查詢

此替代方案使用 NOT EXISTS 來實現相同的結果。 它通常被認為對於大型資料集更有效:

<code class="language-sql">SELECT *
FROM Call
WHERE NOT EXISTS (
    SELECT *
    FROM Phone_book
    WHERE Phone_book.phone_number = Call.phone_number
);</code>

方法3:LEFT OUTER JOINNULL檢查

此方法使用 LEFT OUTER JOIN 並過濾 NULL 列中的 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>

預期結果:

所有三個查詢將產生相同的輸出:

表:Call

id date phone_number
3 1045 333333333333

這可以正確識別來自未註冊號碼的通話。 選擇最適合您的資料庫系統和資料大小的方法。

以上是如何使用 SQL 查詢識別未註冊的呼叫者?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn