Rumah > pangkalan data > tutorial mysql > Bagaimana Mengenalpasti Pemanggil Tidak Berdaftar Menggunakan Pertanyaan SQL?

Bagaimana Mengenalpasti Pemanggil Tidak Berdaftar Menggunakan Pertanyaan SQL?

Patricia Arquette
Lepaskan: 2025-01-22 18:39:11
asal
630 orang telah melayarinya

How to Identify Unregistered Callers Using SQL Queries?

Mengenal pasti Pemanggil Tidak Diketahui: Teknik SQL untuk Nombor Tidak Berdaftar

Artikel ini menunjukkan cara mengenal pasti panggilan telefon daripada nombor yang tidak disenaraikan dalam pangkalan data buku telefon menggunakan pertanyaan SQL. Kami akan meneroka beberapa kaedah yang cekap untuk mencapai matlamat ini.

Senario:

Pertimbangkan jadual ini:

Jadual: Phone_book

id name phone_number
1 John 111111111111
2 Jane 222222222222

Jadual: Call

id date phone_number
1 0945 111111111111
2 0950 222222222222
3 1045 333333333333

Objektifnya adalah untuk mencari panggilan daripada nombor bukan dalam Phone_book.

Penyelesaian Pertanyaan SQL:

Tiga kaedah dibentangkan di bawah:

Kaedah 1: NOT IN Subkueri

Pendekatan ini menggunakan subkueri NOT IN untuk menapis panggilan dengan nombor yang terdapat dalam Phone_book:

dengan cekap dengan cekap
<code class="language-sql">SELECT *
FROM Call
WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book);</code>
Salin selepas log masuk

Kaedah 2: NOT EXISTS Subkueri

Alternatif ini menggunakan NOT EXISTS untuk mencapai hasil yang sama. Ia selalunya dianggap lebih cekap untuk set data yang besar:

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

Kaedah 3: LEFT OUTER JOIN dengan NULL Semak

Kaedah ini menggunakan LEFT OUTER JOIN dan menapis untuk nilai NULL dalam lajur Phone_book untuk mengenal pasti panggilan tanpa entri sepadan:

<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>
Salin selepas log masuk

Hasil Jangkaan:

Ketiga-tiga pertanyaan akan menghasilkan output yang sama:

Jadual: Call

id date phone_number
3 1045 333333333333

Ini mengenal pasti panggilan daripada nombor yang tidak berdaftar dengan betul. Pilih kaedah yang paling sesuai dengan sistem pangkalan data dan saiz data anda.

Atas ialah kandungan terperinci Bagaimana Mengenalpasti Pemanggil Tidak Berdaftar Menggunakan Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan