Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql left join não retorna todas as linhas da tabela esquerda


Na sua consulta;
SELECT *
FROM phonetype
LEFT JOIN phone
ON phonetype.phonetypeID=phone.phonetypeID
where phone.peopleID = ?

...o WHERE cláusula com uma condição na tabela mais à direita removerá todas as linhas onde a tabela mais à direita não tem valor, negando o LEFT JOIN .

O que você provavelmente quer é adicionar a condição ao LEFT JOIN 's ON cláusula em vez disso, permitindo os valores vazios de phone ainda aparecer;
SELECT *
FROM phonetype
LEFT JOIN phone
  ON phonetype.phonetypeID=phone.phonetypeID
 AND phone.peopleID = ?