да where клауза превръща лявото външно съединение във вътрешно съединение.
Защо? Стойността на pe.pqid е NULL (както е pe.uid ), когато няма съвпадение. Така че сравнението в where клаузата е неуспешна (почти всички сравнения с NULL върне NULL което се счита за невярно).
Решението е да преместите сравнението към on клауза:
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