sql >> Databáze >  >> RDS >> Mysql

Left Outer Join nevrací všechny řádky z mé levé tabulky?

Nannina odpověď Given vysvětluje, proč nezískáte požadovaný výsledek (klauzule WHERE odstraňuje řádky), ale ne jak to opravit.

Řešením je změnit WHERE na AND tak, aby podmínka byla součástí podmínky spojení, nikoli filtr použitý po spojení:

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

Nyní budou ve výsledku přítomny všechny řádky v levé tabulce.



  1. Obnovení databáze z nouzového režimu na serveru SQL

  2. Jak mohu seskupit podle sloupce data a času, aniž bych vzal v úvahu čas

  3. Bourejte zdi! Jak uvolnit vaše data

  4. SQL Server tabulky:jaký je rozdíl mezi @, # a ##?