Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melakukan Gabungan Kiri dengan Jadual Pra-Tapis dalam SQL?

Bagaimana untuk Melakukan Gabungan Kiri dengan Jadual Pra-Tapis dalam SQL?

Susan Sarandon
Lepaskan: 2025-01-14 13:31:46
asal
743 orang telah melayarinya

How to Perform a Left Join with a Pre-Filtered Table in SQL?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Keputusan

<code>╔══════════╦═══════╦═══════╗
║ Customer ║ State ║ Entry ║
╠══════════╬═══════╬═══════╣
║ A        ║ S     ║  5575 ║
║ A        ║ S     ║  3215 ║
║ B        ║ V     ║  4445 ║
║ C        ║ L     ║  NULL ║
╚══════════╩═══════╩═══════╝</code>
Salin selepas log masuk

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!

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