Rumah >pangkalan data >tutorial mysql >Bagaimana Mencari Panggilan Tanpa Entri Buku Telefon yang sepadan?
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_number
s 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!