sql >> Database >  >> RDS >> Mysql

mysql left join geeft niet alle linkertabelrij terug

In uw vraag;

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

...de WHERE clausule met een voorwaarde in de meest rechtse tabel verwijdert alle rijen waar de meest rechtse tabel geen waarde heeft, waardoor de LEFT JOIN wordt genegeerd .

Wat u waarschijnlijk wilt, is de voorwaarde toevoegen aan de LEFT JOIN 's ON clausule in plaats daarvan, waardoor de lege waarden van phone om nog steeds te verschijnen;

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


  1. codeigniter :gegevens ophalen tussen twee datums in mysql met behulp van php

  2. get_result() Werkt niet, zelfs mysqlnd is ingeschakeld

  3. laat mysql select-instructie volledig gekwalificeerde kolomnamen retourneren, zoals table.field

  4. SQL herkent kolomalias niet in where-clausule