ホームページ >データベース >mysql チュートリアル >SQL クエリを使用して未登録の発信者を特定する方法

SQL クエリを使用して未登録の発信者を特定する方法

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-22 18:39:11661ブラウズ

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 クエリ ソリューション:

以下に 3 つの方法を示します:

方法 1: 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>

期待される結果:

3 つのクエリはすべて同じ出力を生成します:

テーブル: Call

id date phone_number
3 1045 333333333333

これにより、未登録の番号からの通話が正しく識別されます。 データベース システムとデータ サイズに最適な方法を選択してください。

以上がSQL クエリを使用して未登録の発信者を特定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。