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

Left Outer Join não retorna todas as linhas da minha tabela esquerda?


resposta de Nanne dado explica por que você não obtém o resultado desejado (sua cláusula WHERE remove as linhas), mas não como corrigi-lo.

A solução é mudar WHERE para AND para que a condição faça parte da condição de junção, não um filtro aplicado após a junção:
SELECT day.days, COUNT(*) as opens 
FROM day 
LEFT OUTER JOIN tracking
ON day.days = DAY(FROM_UNIXTIME(open_date)) 
AND tracking.open_id = 10 
GROUP BY day.days

Agora todas as linhas da tabela à esquerda estarão presentes no resultado.