Rumah >pangkalan data >tutorial mysql >Bagaimana Mengenalpasti Panggilan daripada Nombor Telefon Tidak Tersenarai dalam Pangkalan Data Terpaut?

Bagaimana Mengenalpasti Panggilan daripada Nombor Telefon Tidak Tersenarai dalam Pangkalan Data Terpaut?

Barbara Streisand
Barbara Streisandasal
2025-01-22 18:27:08311semak imbas

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

Mencari Rekod Panggilan daripada Nombor Tidak Diketahui

Pangkalan data kami termasuk dua jadual: 'Phone_book' (mengandungi nama dan nombor telefon) dan 'Panggilan' (mengandungi log panggilan). Matlamatnya adalah untuk menentukan panggilan yang berasal daripada nombor tidak disenaraikan dalam jadual 'Buku_telefon'.

Penyelesaian:

Beberapa pertanyaan SQL boleh mencapai ini; kecekapan bergantung pada pengoptimuman pangkalan data dan saiz jadual.

Kaedah 1 (TIDAK DALAM):

Pertanyaan ringkas ini cekap untuk jadual 'Phone_book' yang lebih kecil:

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

Kaedah 2 (TIDAK WUJUD):

Pendekatan alternatif, selalunya diutamakan untuk prestasi dengan set data yang lebih besar:

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

Kaedah 3 (SERTAI LUAR KIRI):

Pilihan ketiga menggunakan LEFT OUTER JOIN:

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

Nota Penting: Untuk prestasi optimum, gantikan SELECT * dengan senarai lajur khusus yang diperlukan daripada jadual 'Panggil'. Ini mengurangkan pengambilan data dan meningkatkan kelajuan pertanyaan.

Atas ialah kandungan terperinci Bagaimana Mengenalpasti Panggilan daripada Nombor Telefon Tidak Tersenarai dalam Pangkalan Data Terpaut?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn