Ja. De where
clausule verandert de linker outer join in een inner join.
Waarom? De waarde van pe.pqid
is NULL
(zoals pe.uid
) als er geen overeenkomst is. Dus de vergelijking in de where
clausule mislukt (bijna alle vergelijkingen met NULL
return NULL
wat als onwaar wordt beschouwd).
De oplossing is om de vergelijking te verplaatsen naar de on
clausule:
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