簡體   English   中英

左連接不顯示所有左連接行

[英]LEFT JOIN NOT SHOW ALL LEFT JOIN ROWS

LEFT JOIN 應該顯示左表上的所有行,但是在運行以下查詢時,我只會獲得具有相同 id 的位置值。 請有人給我一些關於我可能出錯的地方的指導:

SELECT us.*, sp.date , k.kelas as nama_kelas
FROM gtech_tbl_user_siswa us
JOIN sekolah_tbl_kelas k ON k.id = us.kelas
LEFT OUTER JOIN gtech_tbl_absensi_siswa_pertemuan sp ON us.id = sp.id_user 
WHERE sp.id_materi = 520
AND sp.id_sub_materi = 1206

提前致謝

您需要將當前出現在WHERE子句中的表上的條件移動到涉及該表的左連接的ON子句中:

SELECT *
FROM gtech_tbl_user_siswa us
INNER JOIN sekolah_tbl_kelas k ON k.id = us.kelas
LEFT OUTER JOIN gtech_tbl_absensi_siswa_pertemuan sp
    ON us.id = sp.id_user AND sp.id_materi = 520 AND sp.id_sub_materi = 1206;

您遇到的問題是由於WHERE子句發生左連接之后。 因此,即使您的左連接實際上確實避免了連接左側的不匹配記錄被過濾掉,但WHERE子句稍后仍會刪除此類記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM