W zapytaniu;
SELECT *
FROM phonetype
LEFT JOIN phone
ON phonetype.phonetypeID=phone.phonetypeID
where phone.peopleID = ?
...WHERE
klauzula z warunkiem w tabeli po prawej stronie usunie wszystkie wiersze, w których tabela po prawej stronie nie ma wartości, negując LEFT JOIN
.
Najprawdopodobniej chcesz dodać warunek do LEFT JOIN
ON
zamiast tego, zezwalając na puste wartości phone
nadal się pojawiać;
SELECT *
FROM phonetype
LEFT JOIN phone
ON phonetype.phonetypeID=phone.phonetypeID
AND phone.peopleID = ?