Rumah >pangkalan data >tutorial mysql >Bagaimana Mencari Panggilan Tanpa Entri Buku Telefon yang sepadan?

Bagaimana Mencari Panggilan Tanpa Entri Buku Telefon yang sepadan?

Patricia Arquette
Patricia Arquetteasal
2025-01-22 18:40:10732semak imbas

How to Find Calls Without Corresponding Phone Book Entries?

Mengenal pasti Rekod Panggilan Tidak Padan

Panduan ini menunjukkan cara mencari rekod panggilan dalam jadual "Panggilan" yang tidak mempunyai entri yang sepadan dalam jadual "Buku_Telefon". Matlamatnya adalah untuk mengenal pasti panggilan daripada nombor yang tidak disenaraikan dalam buku telefon. Kami akan meneroka beberapa pendekatan SQL untuk mencapai ini.

Kaedah 1: Menggunakan NOT IN

Kaedah ini menggunakan klausa NOT IN untuk menapis nombor telefon yang terdapat dalam jadual "Buku_telefon".

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

Pertanyaan ini memilih semua lajur daripada jadual "Panggil" yang phone_number tidak ditemui dalam senarai phone_numbers daripada jadual "Buku_telefon".

Kaedah 2: Menggunakan NOT EXISTS

Pendekatan ini menggunakan subkueri dengan NOT EXISTS untuk menyemak ketiadaan nombor telefon yang sepadan.

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

Subkueri mencari padanan. Jika tiada padanan ditemui (NOT EXISTS), pertanyaan luar termasuk rekod.

Kaedah 3: Memanfaatkan LEFT OUTER JOIN

Kaedah ini menggunakan LEFT OUTER JOIN untuk menggabungkan kedua-dua jadual, kemudian menapis untuk nilai nol dalam jadual "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>

A LEFT OUTER JOIN mengembalikan semua baris daripada jadual "Panggil". Jika tiada padanan dalam "Phone_book", lajur yang sepadan dalam "Phone_book" ialah NULL. Penapis klausa WHERE untuk menunjukkan hanya baris yang tidak sepadan ini. Pendekatan ini selalunya diutamakan kerana kelebihan prestasinya, terutamanya dengan set data yang lebih besar.

Atas ialah kandungan terperinci Bagaimana Mencari Panggilan Tanpa Entri Buku Telefon yang sepadan?. 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