Rumah >pangkalan data >tutorial mysql >Mengapa SQL Saya Kiri Sertai Hanya Mengembalikan Satu Baris Daripada Semua Baris?

Mengapa SQL Saya Kiri Sertai Hanya Mengembalikan Satu Baris Daripada Semua Baris?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-12 13:25:14293semak imbas

Why Does My SQL Left Join Only Return One Row Instead of All Rows?

Pertanyaan SQL Tidak Mengembalikan semua Baris dengan Sertai Kiri

Pertanyaan ini bertujuan untuk mendapatkan semula semua baris daripada jadual jos_hp_properties (dipendekkan sebagai pr) bersama dengan nilai daripada jadual jos_hp_properties2 (dipendekkan sebagai pr7), di mana medan bernama medan sama dengan 23 dalam jadual terakhir. Walau bagaimanapun, pertanyaan semasa hanya mengembalikan satu baris, walaupun jadual jos_hp_properties mengandungi 27 baris.

Untuk menangani isu ini, klausa WHERE harus dialihkan ke pernyataan JOIN, seperti berikut:

SELECT pr.*, pr7.value AS `room_price_high`
FROM `jos_hp_properties` pr
LEFT JOIN `jos_hp_properties2` pr7 
ON pr7.property=pr.id
AND 
pr7.field=23

Dengan pertanyaan yang diubah suai ini, klausa WHERE tidak lagi mengehadkan keputusan yang ditetapkan sebelum penyertaan. Sebaliknya, baris daripada jadual jos_hp_properties akan disertakan walaupun tiada baris yang sepadan dalam jadual jos_hp_properties2 untuk medan 23 (dalam keadaan ini nilai yang dikembalikan adalah NULL). Ini memastikan semua baris daripada jadual pertama dikembalikan, bersama-sama dengan data yang dikehendaki daripada jadual kedua, jika berkenaan.

Atas ialah kandungan terperinci Mengapa SQL Saya Kiri Sertai Hanya Mengembalikan Satu Baris Daripada Semua Baris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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