Laksanakan sambungan kiri SQL dan pra-penapis data jadual dengan cekap
Apabila bekerja dengan berbilang jadual, selalunya perlu menapis salah satu jadual sebelum menyertainya. Contoh ini melibatkan dua jadual: Pelanggan dan Kemasukan.
Matlamatnya adalah untuk menapis jadual entri berdasarkan kategori 'D' tertentu sebelum melakukan sambung kiri antara dua jadual ini. Hasil yang dijangkakan ialah: dapatkan semula semua rekod dalam jadual pelanggan tanpa mengira sama ada rekod yang berkaitan wujud dalam jadual kemasukan pada masa yang sama, kecualikan rekod dalam jadual kemasukan yang tidak memenuhi syarat kategori.
Pertanyaan SQL berikut menunjukkan cara untuk mencapai ini:
<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 mengalihkan syarat penapis WHERE ke dalam keadaan JOIN, kami boleh menggunakan penapisan kategori pada jadual kemasukan sebelum menyertai. Ini memastikan bahawa hanya rekod kemasukan yang memenuhi kriteria kategori dimasukkan dalam keputusan penyertaan.
Contoh jadual
<code>客户表 (Customer): ╔══════════╦═══════╗ ║ Customer ║ State ║ ╠══════════╬═══════╣ ║ A ║ S ║ ║ B ║ V ║ ║ C ║ L ║ ╚══════════╩═══════╝ 条目表 (Entry): ╔══════════╦═══════╦══════════╗ ║ Customer ║ Entry ║ Category ║ ╠══════════╬═══════╬══════════╣ ║ A ║ 5575 ║ D ║ ║ A ║ 6532 ║ C ║ ║ A ║ 3215 ║ D ║ ║ A ║ 5645 ║ M ║ ║ B ║ 3331 ║ A ║ ║ B ║ 4445 ║ D ║ ╚══════════╩═══════╩══════════╝</code>
Keputusan
<code>╔══════════╦═══════╦═══════╗ ║ Customer ║ State ║ Entry ║ ╠══════════╬═══════╬═══════╣ ║ A ║ S ║ 5575 ║ ║ A ║ S ║ 3215 ║ ║ B ║ V ║ 4445 ║ ║ C ║ L ║ NULL ║ ╚══════════╩═══════╩═══════╝</code>
Ringkasnya, dengan menggunakan klausa DAN dalam keadaan JOIN, kami boleh menapis jadual sebelum menyertainya, dengan itu mendapatkan semula data dengan lebih tepat berdasarkan syarat yang ditentukan.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Gabungan Kiri dengan Jadual Pra-Tapis dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!