sql >> Database >  >> RDS >> Mysql

Left Outer Join retourneert niet alle rijen van mijn linkertabel?

Nanne's antwoord gegeven verklaart waarom u niet het gewenste resultaat krijgt (uw WHERE-clausule verwijdert rijen), maar niet hoe u dit kunt oplossen.

De oplossing is om WHERE in AND te veranderen, zodat de voorwaarde deel uitmaakt van de join-voorwaarde, en niet een filter dat wordt toegepast na de join:

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 zullen alle rijen in de linkertabel aanwezig zijn in het resultaat.



  1. Lijst met SQL Server-vergelijkingsoperators

  2. sqlite rij-ID's komen niet overeen met lijstweergave - ANDROID

  3. Demystificerende CXPACKET- en CXCONSUMER-wachttypen in SQL Server

  4. Hoe update ik alle kolommen met INSERT ... ON CONFLICT ...?