Tapis jadual sebelum menyertai kiri
Dalam SQL, join tables ialah alat yang berkuasa untuk menggabungkan data daripada berbilang sumber data. Walau bagaimanapun, anda mungkin perlu menapis salah satu jadual sebelum melakukan operasi gabungan.
Andaikan anda mempunyai dua jadual: Pelanggan dan Kemasukan. Anda ingin mendapatkan semula semua rekod dalam jadual Pelanggan tidak kira sama ada mereka mempunyai entri yang sepadan dalam jadual Entri, tetapi hanya pelanggan dengan kategori "D" dalam jadual Entri.
Pertanyaan sertai kiri mudah kelihatan seperti ini:
<code class="language-sql">SELECT Customer.Customer, Customer.State, Entry.Entry FROM Customer LEFT JOIN Entry ON Customer.Customer = Entry.Customer WHERE Entry.Category = 'D'</code>
Walau bagaimanapun, pertanyaan ini akan mengecualikan pelanggan dengan ID "C" kerana mereka tidak mempunyai sebarang entri dengan kategori "D". Untuk memastikan semua rekod pelanggan disertakan, anda boleh mengalihkan penapis ke dalam syarat gabungan:
<code class="language-sql">SELECT c.Customer, c.State, e.Entry FROM Customer c LEFT JOIN Entry e ON c.Customer = e.Customer AND e.Category = 'D'</code>
Dengan meletakkan penapis di dalam keadaan sambung, anda boleh menapis jadual kemasukan dengan berkesan sebelum melakukan sambungan. Ini membolehkan anda mendapatkan semula semua pelanggan tanpa mengira sama ada mereka mempunyai entri yang sepadan dalam jadual entri, sementara masih hanya memasukkan entri dengan kategori "D" dalam keputusan.
Penyelesaian ini menyediakan cara yang fleksibel untuk mengawal data yang disertakan dalam hasil gabungan, membolehkan anda melakukan operasi data yang lebih tepat dan dioptimumkan.
Atas ialah kandungan terperinci Bagaimana Menapis Jadual Sebelum Sertai Kiri dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!