sql >> Base de Datos >  >> RDS >> Mysql

¿La unión externa izquierda no devuelve todas las filas de mi tabla izquierda?

La respuesta de Nanne dado explica por qué no obtiene el resultado deseado (su cláusula WHERE elimina filas), pero no cómo solucionarlo.

La solución es cambiar WHERE a AND para que la condición sea parte de la condición de combinación, no un filtro aplicado después de la combinación:

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

Ahora todas las filas de la tabla de la izquierda estarán presentes en el resultado.