Rumah > pangkalan data > tutorial mysql > Mengapakah LEFT OUTER JOIN Saya Tidak Berfungsi dengan Penapis Tarikh dalam Klausa WHERE?

Mengapakah LEFT OUTER JOIN Saya Tidak Berfungsi dengan Penapis Tarikh dalam Klausa WHERE?

Patricia Arquette
Lepaskan: 2025-01-17 14:27:10
asal
630 orang telah melayarinya

Why Doesn't My LEFT OUTER JOIN Work with Date Filters in the WHERE Clause?

Menyahpepijat Gagal LEFT OUTER JOIN dengan Penapisan Tarikh

Cabaran pertanyaan SQL biasa melibatkan penggunaan LEFT OUTER JOIN dengan penapis tarikh. Jangkaan ialah data daripada jadual kiri (cth., Salesrep) dikembalikan walaupun tiada data yang sepadan dalam jadual kanan (Prescriber dan Prescriptions). Walau bagaimanapun, menambahkan penapis tarikh pada klausa WHERE boleh menapis rekod secara tidak dijangka daripada jadual sebelah kiri.

Memahami Isu:

Masalah timbul daripada lokasi keadaan julat tarikh. Meletakkannya dalam fasal WHERE salah menapis hasil selepas gabungan, dengan berkesan mengalih keluar baris dari jadual kiri yang kekurangan entri sepadan dalam julat tarikh yang ditentukan.

Pendekatan yang Betul:

Untuk mengekalkan integriti LEFT OUTER JOIN, kriteria julat tarikh hendaklah dimasukkan ke dalam klausa ON bagi gabungan itu sendiri. Ini memastikan penapisan berlaku semasa gabungan, mengekalkan semua rekod dari jadual kiri, tanpa mengira preskripsi yang sepadan dalam julat tarikh.

Pertanyaan Disemak:

LEFT OUTER JOIN prescriptions ON prescriber.dea_no = prescriptions.dea_no
                             AND prescriptions.filldate >= '09-01-12'
                             AND prescriptions.filldate <= '09-30-12'
Salin selepas log masuk

Dengan menempatkan semula penapis tarikh ke klausa ON, pertanyaan mengembalikan semua data daripada jadual Salesrep dengan tepat, termasuk wakil jualan tanpa preskripsi dalam tempoh masa yang ditetapkan. Ini melaksanakan tingkah laku yang diharapkan daripada LEFT OUTER JOIN dengan betul.

Atas ialah kandungan terperinci Mengapakah LEFT OUTER JOIN Saya Tidak Berfungsi dengan Penapis Tarikh dalam Klausa WHERE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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