Mysql
 sql >> Base de données >  >> RDS >> Mysql

La jointure externe gauche ne renvoie pas toutes les lignes de ma table de gauche ?

La réponse de Nanne donné explique pourquoi vous n'obtenez pas le résultat souhaité (votre clause WHERE supprime des lignes), mais pas comment y remédier.

La solution consiste à remplacer WHERE par AND afin que la condition fasse partie de la condition de jointure, et non un filtre appliqué après la jointure :

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

Désormais, toutes les lignes du tableau de gauche seront présentes dans le résultat.