Bagaimana untuk Memilih Baris dengan Cekap daripada Jadual A yang Tiada dalam Jadual B?

Mary-Kate Olsen
Lepaskan: 2024-10-26 06:02:30
asal
614 orang telah melayarinya

 How to Efficiently Select Rows from Table A that are Not in Table B?

Memilih Baris daripada Jadual A dengan Cekap Dikecualikan daripada Jadual B

Apabila berurusan dengan dua jadual (A dan B) berkongsi kunci utama yang sama, tugas biasa adalah untuk mengekstrak semua baris yang terdapat dalam A tetapi tidak dalam B. Penyelesaian sedia ada, seperti menggunakan klausa "TIDAK WUJUD", mungkin menunjukkan isu prestasi.

Untuk meningkatkan kecekapan, adalah disyorkan untuk menggunakan pendekatan bergabung kiri. Sintaks untuk penyelesaian berasaskan gabungan kiri adalah seperti berikut:

SELECT *
FROM A
LEFT JOIN B ON A.x = B.y
WHERE B.y IS NULL;
Salin selepas log masuk

Pendekatan ini membandingkan setiap baris dalam jadual A dengan baris yang sepadan dalam jadual B dengan menggabungkannya berdasarkan medan biasa "x" (dengan andaian ia wujud). Baris daripada jadual A yang tidak mempunyai baris yang sepadan dalam jadual B akan dikembalikan kerana klausa "WHERE" menapis baris dengan "B.y" ialah NULL, yang menunjukkan padanan yang tiada.

Sebagai alternatif, sintaks berikut boleh digunakan untuk mencapai hasil yang sama:

SELECT A.*
FROM A
LEFT JOIN B ON A.x = B.y
WHERE B.y IS NULL;
Salin selepas log masuk

Sintaks ini secara eksplisit memilih lajur daripada jadual A, memastikan tiada data yang tidak perlu diambil.

Secara amnya, pendekatan gabungan kiri ialah cara yang lebih cekap untuk melaksanakan operasi "pilih di mana tiada dalam jadual" berbanding klausa "TIDAK WUJUD". Walaupun peningkatan prestasi khusus mungkin berbeza-beza bergantung pada saiz dan struktur data, cantuman kiri cenderung untuk mengatasi alternatif, terutamanya apabila bilangan baris dalam jadual B jauh lebih kecil daripada jadual A.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris dengan Cekap daripada Jadual A yang Tiada dalam Jadual B?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!