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

Left Outer Join returnerer ikke alle rækker fra mit venstre bord?

Nannes svar givet forklarer, hvorfor du ikke får det ønskede resultat (din WHERE-klausul fjerner rækker), men ikke hvordan du løser det.

Løsningen er at ændre WHERE til OG, så betingelsen er en del af join-betingelsen, ikke et filter, der anvendes efter sammenføjningen:

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

Nu vil alle rækker i den venstre tabel være til stede i resultatet.



  1. Tillad null i unik kolonne

  2. Opgaveliste

  3. Sådan opretter og sletter du databaser og tabeller i MySQL

  4. Referenceværdi for seriel kolonne i en anden kolonne under samme INSERT