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 = ?