ホームページ >データベース >mysql チュートリアル >リンクされたデータベース内のリストに掲載されていない電話番号からの通話を識別するにはどうすればよいですか?

リンクされたデータベース内のリストに掲載されていない電話番号からの通話を識別するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-22 18:27:08353ブラウズ

How to Identify Calls from Unlisted Phone Numbers in a Linked Database?

不明な番号からの通話記録の検索

私たちのデータベースには、「Phone_book」(名前と電話番号を含む) と「Call」(通話記録を含む) という 2 つのテーブルが含まれています。 目標は、「Phone_book」テーブルにリストされていない番号から発信された通話を正確に特定することです。

解決策:

いくつかの SQL クエリでこれを実現できます。効率はデータベースの最適化とテーブルのサイズによって決まります。

方法 1 (未入力):

この単純なクエリは、小規模な「Phone_book」テーブルの場合に効率的です。

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

方法 2 (存在しません):

代替アプローチ。大規模なデータセットでのパフォーマンスに好まれることがよくあります:

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

方法 3 (左外部結合):

LEFT OUTER JOINを使用した 3 番目のオプション:

<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>

重要な注意事項: 最適なパフォーマンスを得るには、SELECT * を「Call」テーブルに必要な特定の列のリストに置き換えてください。 これにより、データの取得が軽減され、クエリ速度が向上します。

以上がリンクされたデータベース内のリストに掲載されていない電話番号からの通話を識別するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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