Mysql
 sql >> Database >  >> RDS >> Mysql

Left Outer Join non restituisce tutte le righe dalla mia tabella di sinistra?

La risposta di Nanne dato spiega perché non ottieni il risultato desiderato (la tua clausola WHERE rimuove le righe), ma non come risolverlo.

La soluzione è cambiare WHERE in AND in modo che la condizione sia parte della condizione di unione, non un filtro applicato dopo l'unione:

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

Ora tutte le righe nella tabella di sinistra saranno presenti nel risultato.