Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql left join gibt nicht alle linken Tabellenzeilen zurück

In Ihrer Abfrage;

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

...das WHERE -Klausel mit einer Bedingung für die Tabelle ganz rechts entfernt alle Zeilen, in denen die Tabelle ganz rechts keinen Wert hat, wodurch der LEFT JOIN negiert wird .

Wahrscheinlich möchten Sie die Bedingung zum LEFT JOIN hinzufügen ist ON -Klausel, die leere Werte von phone zulässt trotzdem auftauchen;

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