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

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

Patricia Arquette
發布: 2025-01-22 18:39:11
原創
738 人瀏覽過

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:

中存在號碼的呼叫
SELECT *
FROM Call
WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book);
登入後複製

方法2:NOT EXISTS子查詢

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

SELECT *
FROM Call
WHERE NOT EXISTS (
    SELECT *
    FROM Phone_book
    WHERE Phone_book.phone_number = Call.phone_number
);
登入後複製

方法3:LEFT OUTER JOINNULL檢查

此方法使用 LEFT OUTER JOIN 並過濾 NULL 列中的 Phone_book 值來識別沒有匹配條目的呼叫:

SELECT *
FROM Call
LEFT OUTER JOIN Phone_book ON (Call.phone_number = Phone_book.phone_number)
WHERE Phone_book.phone_number IS NULL;
登入後複製

預期結果:

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

表:Call

id date phone_number
3 1045 333333333333

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

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

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