sql >> Databáze >  >> RDS >> Mysql

mysql left join nevrací všechny levé řádky tabulky

Ve vašem dotazu;

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

...WHERE klauzule s podmínkou na tabulce zcela vpravo odstraní všechny řádky, kde tabulka zcela vpravo nemá žádnou hodnotu, čímž se zruší LEFT JOIN .

Nejpravděpodobněji budete chtít přidat podmínku do LEFT JOIN 's ON místo toho klauzule povolující prázdné hodnoty phone stále se zobrazovat;

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


  1. VYBERTE a uzamkněte řádek a poté UPDATE

  2. nolock na dočasné tabulce v SQL Server 2008

  3. Získávání COUNT ze sqlalchemy

  4. Jak získat druhý nejnovější řádek z mysql?