


Bagaimanakah Saya Boleh Mencari Rekod Tidak Padanan dengan Cekap Antara Dua Jadual SQL?
Mencari Rekod Bercanggah Dengan Cekap Antara Dua Jadual SQL
Pentadbir pangkalan data selalunya perlu mengenal pasti rekod dalam satu jadual tanpa rekod yang lain. Artikel ini menunjukkan pendekatan SQL yang cekap untuk tugas biasa ini.
Mari kita pertimbangkan dua jadual, table1
dan table2
, setiap satu dengan lajur id
dan name
:
<code>table1: (id, name) table2: (id, name)</code>
Matlamatnya adalah untuk mencari nama dalam table2
tiada daripada table1
. Pendekatan naif menggunakan NOT IN
adalah mungkin tetapi tidak cekap:
SELECT name FROM table2 WHERE NOT name IN (SELECT name FROM table1);
Kaedah unggul menggunakan LEFT JOIN
:
SELECT t1.name FROM table1 t1 LEFT JOIN table2 t2 ON t2.name = t1.name WHERE t2.name IS NULL;
Penjelasan Pertanyaan
Pertanyaan ini menggunakan LEFT JOIN
untuk menggabungkan baris daripada table1
dan table2
berdasarkan nilai name
yang sepadan. Untuk setiap baris dalam table1
, ia mencari padanan dalam table2
. Jika padanan ditemui, hasilnya termasuk data daripada kedua-dua jadual. Walau bagaimanapun, jika tiada padanan wujud dalam table2
, medan table2
dalam keputusan ialah NULL
. Klausa WHERE
menapis hasil ini, hanya mengembalikan baris dengan t2.name
ialah NULL
, menunjukkan nama tidak sepadan.
Faedah Pendekatan ini
Kaedah ini menawarkan beberapa kelebihan utama:
-
Prestasi Dipertingkat:
LEFT JOIN
mengelakkan overhed prestasi pertanyaan bersarang, secara amnya menghasilkan pelaksanaan yang lebih pantas. - Keserasian Pangkalan Data Luas: Konstruk SQL ini disokong secara meluas merentas pelbagai sistem pangkalan data.
-
Kebolehbacaan yang Dipertingkat: Sintaks
LEFT JOIN
adalah jelas dan mudah difahami, menjadikan pertanyaan lebih mudah untuk diselenggara dan nyahpepijat.
Walaupun prestasi optimum mungkin berbeza-beza berdasarkan spesifik pangkalan data, pendekatan LEFT JOIN
ini menawarkan penyelesaian yang mantap dan cekap untuk mengenal pasti rekod tidak sepadan antara jadual SQL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Rekod Tidak Padanan dengan Cekap Antara Dua Jadual SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
