Đúng. where
mệnh đề đang chuyển phép nối bên ngoài bên trái thành một phép nối bên trong.
Tại sao? Giá trị của pe.pqid
là NULL
(cũng như pe.uid
) khi không có kết quả phù hợp. Vì vậy, so sánh trong where
mệnh đề không thành công (hầu hết tất cả các so sánh với NULL
trả về NULL
được coi là sai).
Giải pháp là chuyển so sánh sang on
mệnh đề:
SELECT pq.id, pq.data, pe.data
FROM pq LEFT OUTER JOIN
pe
ON pq.id = pe.pqid and
pe.uid='12345'
ORDER BY pq.id LIMIT 2