不明な番号からの通話記録の検索
私たちのデータベースには、「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 サイトの他の関連記事を参照してください。