Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Left Outer Join nie zwraca wszystkich wierszy z mojej lewej tabeli?

Odpowiedź Nanne podane wyjaśnia, dlaczego nie otrzymujesz pożądanego wyniku (twoja klauzula WHERE usuwa wiersze), ale nie wyjaśnia, jak to naprawić.

Rozwiązaniem jest zmiana WHERE na AND, aby warunek był częścią warunku złączenia, a nie filtrem zastosowanym po złączeniu:

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

Teraz wszystkie wiersze w lewej tabeli będą obecne w wyniku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pojedyncza ustalona tabela z wieloma kolumnami vs elastyczne tabele abstrakcyjne

  2. Równoważenie obciążenia bazy danych w chmurze — MySQL Master Failover z ProxySQL 2.0:część pierwsza (wdrożenie)

  3. Zapytanie MySQL „NIE W” 3 tabele

  4. Dlaczego MySQL nie obsługuje precyzji w milisekundach/mikrosekundach?

  5. Nie można zwrócić wyników z procedury składowanej za pomocą kursora Pythona