Rumah > pangkalan data > tutorial mysql > Mengapa SERTAI LUAR KIRI Saya Gagal Mengembalikan Hasil Yang Dijangka Apabila Menggunakan Penapis Tarikh?

Mengapa SERTAI LUAR KIRI Saya Gagal Mengembalikan Hasil Yang Dijangka Apabila Menggunakan Penapis Tarikh?

Patricia Arquette
Lepaskan: 2025-01-17 14:13:09
asal
895 orang telah melayarinya

Why Does My LEFT OUTER JOIN Fail to Return Expected Results When Using Date Filters?

Menyelesaikan masalah keputusan pertanyaan LEFT OUTER JOIN yang tidak konsisten

Dalam SQL, operasi LEFT OUTER JOIN direka untuk mengekalkan data dalam jadual kiri walaupun data yang sepadan tidak wujud dalam jadual kanan. Walau bagaimanapun, ia boleh mengelirukan apabila LEFT OUTER JOIN tidak menghasilkan keputusan yang diharapkan.

Katakan anda perlu mendapatkan semula data daripada tiga jadual menggunakan LEFT OUTER JOIN. Anda ingin mendapatkan maklumat daripada jadual Salesrep walaupun tiada rekod sepadan wujud dalam jadual Prescriber dan Preskripsi. Apabila melaksanakan pertanyaan ini dengan parameter tarikh dalam klausa WHERE, anda menemui hasil yang tidak dijangka: tiada baris dikembalikan untuk wakil jualan yang tidak dikaitkan dengan sebarang data.

Untuk menyelesaikan masalah ini, kuncinya adalah untuk mengalihkan kekangan Prescriptions.filldate dari klausa WHERE kepada ON syarat JOIN. Pertanyaan yang diubah suai sepatutnya kelihatan serupa dengan yang berikut:

<code class="language-sql">LEFT OUTER JOIN prescriptions ON prescriber.dea_no = prescriptions.dea_no AND
                             prescriptions.filldate >= '09-01-12'
                             AND prescriptions.filldate < '10-01-12'</code>
Salin selepas log masuk

Pada mulanya, rekod dengan nilai NULL ​​dalam Prescriptions.filldate telah tersalah ditapis apabila parameter tarikh berada dalam klausa WHERE. Dengan memasukkannya dalam keadaan ON, wakil jualan akan tetap disertakan dalam set keputusan walaupun tiada butiran preskripsi yang berkaitan, dan nilai NULL akan dipaparkan dengan sewajarnya.

Kini, apabila melaksanakan pertanyaan, anda akan berjaya memperoleh maklumat jadual Salesrep tanpa mengira data yang sepadan dalam jadual Prescriber dan Preskripsi.

Atas ialah kandungan terperinci Mengapa SERTAI LUAR KIRI Saya Gagal Mengembalikan Hasil Yang Dijangka Apabila Menggunakan Penapis Tarikh?. 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