sql >> Databasteknik >  >> RDS >> Mysql

mysql vänster gå med inte returnera alla vänster tabellrad

I din fråga;

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

... VAR sats med ett villkor i tabellen längst till höger kommer att ta bort alla rader där tabellen längst till höger inte har något värde, vilket negerar LEFT JOIN .

Det du troligen vill är att lägga till villkoret i LEFT JOIN är sats istället, tillåter de tomma värdena för telefon att fortfarande dyka upp;

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


  1. PLS-00394:Fel antal värden i INTO-listan för en fetch-sats

  2. Skillnad mellan -> och ::i PHP MySQLi OOP

  3. Hur man använder Oracle LISTAGG-funktionen

  4. Hur man aktiverar allmänna loggar och felloggar i AWS RDS