Rumah >pangkalan data >tutorial mysql >Mengapakah Bahagian Luar Kiri Saya Tidak Mengembalikan Semua Wakil Jualan Apabila Saya Menapis Mengikut Tarikh?
Selesaikan masalah penapisan tarikh dalam gabungan luar kiri kiri SQL
Dalam pertanyaan SQL anda, gabungan luar kiri tidak mengembalikan hasil yang dijangkakan. Khususnya, apabila anda memasukkan parameter tarikh dalam klausa WHERE, wakil jualan yang tidak mempunyai data yang sepadan dalam jadual sebelah kanan tidak dipaparkan.
Untuk menyelesaikan masalah ini, anda perlu mengalihkan kekangan tarikh jadual prescriptions
ke dalam keadaan ON
cantuman dan bukannya menyimpannya dalam klausa WHERE
:
<code class="language-sql">SELECT salesrep.salesrepid as SalesRepID, salesrep.fname as SalesrepFName, salesrep.lname as SalesRepLName, salesrep.fname+' '+salesrep.lname as SalesRepFullName, prescriber.dea_no as PDeaNo, prescriber.lname+', '+prescriber.fname as DocName, CONVERT(VARCHAR(8), prescriptions.filldate, 1) as FillDate, prescriptions.drugname as DrugName, prescriptions.daysupply as Supply, prescriptions.qtydisp as QtyDisp, prescriptions.rx_no as Refill, prescriptions.copay as Sample, ROUND(prescriptions.AgreedToPay-(prescriptions.AgreedToPay*.07),2) as AgreedToPay, prescriptions.carrierid as CarrierID FROM salesrep LEFT OUTER JOIN prescriber on salesrep.salesrepid = prescriber.salesrepid LEFT OUTER JOIN prescriptions ON prescriber.dea_no = prescriptions.dea_no AND prescriptions.filldate >= '09-01-12' AND prescriptions.filldate <= '09-17-12' ORDER BY prescriptions.filldate</code>
Dengan mengalihkan kekangan ke dalam keadaan ON
, anda boleh memastikan gabungan luar kiri mengembalikan hasil dengan betul untuk semua wakil jualan, tidak kira sama ada rekod padanan wujud dalam jadual prescriptions
.
Atas ialah kandungan terperinci Mengapakah Bahagian Luar Kiri Saya Tidak Mengembalikan Semua Wakil Jualan Apabila Saya Menapis Mengikut Tarikh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!