sql >> Base de Datos >  >> RDS >> Mysql

mysql left join no devuelve todas las filas de la tabla izquierda

En su consulta;

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

...el WHERE cláusula con una condición en la tabla más a la derecha eliminará todas las filas donde la tabla más a la derecha no tiene valor, negando el LEFT JOIN .

Lo que probablemente quieras es agregar la condición a LEFT JOIN 's ON en su lugar, permitiendo los valores vacíos de phone para seguir apareciendo;

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