MySQL Memilih Baris Tidak Hadir dalam Jadual Lain
Untuk mendapatkan semua baris yang wujud dalam Jadual A tetapi tidak dalam Jadual B sambil berkongsi asas biasa kunci, beberapa kaedah tersedia, dengan implikasi prestasi yang berbeza-beza.
Menggunakan Subkueri dengan NOT EXISTS:
Pendekatan awal anda dengan subkueri menggunakan NOT EXISTS adalah berdaya maju pilihan, tetapi boleh menjadi agak perlahan, terutamanya dengan set data yang lebih besar.
Menggunakan Sertai Kiri:
Seperti yang anda dapati, gabungan kiri boleh berprestasi lebih pantas. Apabila menyertai Jadual A dengan Jadual B pada lajur kongsi, baris dalam Jadual A yang tidak sepadan dengan mana-mana baris dalam Jadual B akan mempunyai nilai NULL dalam lajur gabungan. Penapisan untuk nilai NULL ini secara berkesan mengasingkan baris yang dikehendaki.
Contoh Kod:
<code class="sql">SELECT * FROM A LEFT JOIN B ON A.x = B.y WHERE B.y IS NULL;</code>
Petua Tambahan:
Kesimpulan Keseluruhan:
Walaupun kaedah cantum kiri lazimnya mengatasi pendekatan subquery, penyelesaian optimum mungkin berbeza bergantung pada set data dan skema tertentu. Percubaan dan ujian prestasi disyorkan untuk menentukan pendekatan yang paling cekap dalam setiap situasi.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris dengan Cekap daripada Satu Jadual yang Tidak Hadir dalam Jadual Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!