Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql jointure gauche ne renvoie pas toutes les lignes de la table de gauche

Dans votre requête ;

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

...le WHERE clause avec une condition sur la table la plus à droite supprimera toutes les lignes où la table la plus à droite n'a pas de valeur, annulant le LEFT JOIN .

Ce que vous voulez probablement, c'est ajouter la condition au LEFT JOIN est ON clause à la place, autorisant les valeurs vides de phone pour continuer à apparaître ;

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