Mysql
 sql >> Database >  >> RDS >> Mysql

mysql left join non restituisce tutte le righe della tabella a sinistra

Nella tua richiesta;

SELECT *
FROM phonetype
LEFT JOIN phone
ON phonetype.phonetypeID=phone.phonetypeID
where phone.peopleID = ?

...il WHERE La clausola con una condizione sulla tabella più a destra rimuoverà tutte le righe in cui la tabella più a destra non ha valore, annullando il LEFT JOIN .

Quello che probabilmente vuoi è aggiungere la condizione a LEFT JOIN è ON clausola invece, consentendo i valori vuoti di phone per presentarsi ancora;

SELECT *
FROM phonetype
LEFT JOIN phone
  ON phonetype.phonetypeID=phone.phonetypeID
 AND phone.peopleID = ?