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

Pobierz rekordy za pomocą zapytania JOIN

Wynik, który otrzymujesz, jest prawidłowy, ponieważ nie ma żadnych zapisów dotyczących określonego dnia. Ponieważ chcesz uzyskać wszystkie nazwy dni, musisz wyświetlić pełny zestaw dni (używając UNION w SUBQUERY ) i dołącz do istniejącego zapytania.

SELECT  a.day_name,
        COALESCE(b.totalCount, 0) totalCount
FROM
        (
            SELECT 'Sunday' day_name, 1 ordby UNION ALL
            SELECT 'Monday' day_name, 2 ordby UNION ALL
            SELECT 'Tuesday' day_name, 3 ordby UNION ALL
            SELECT 'Wednesday' day_name, 4 ordby UNION ALL
            SELECT 'Thursday' day_name, 5 ordby UNION ALL
            SELECT 'Friday' day_name, 6 ordby UNION ALL
            SELECT 'Saturday' day_name, 7 ordby 
        ) a
        LEFT JOIN
        (
            SELECT  DAYNAME(timestamp) day_name, 
                    COUNT(*) totalCount
            FROM    `emp_info` 
            WHERE   DATE(timestamp ) > DATE_SUB(CURDATE( ) , INTERVAL 1 WEEK ) 
            GROUP   BY DAYNAME(timestamp)
        ) b ON a.day_name = b.day_name
ORDER   BY a.ordby



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jakiego typu/długości kolumny należy użyć do przechowywania zaszyfrowanego hasła Bcrypt w bazie danych?

  2. Błąd #1241 - Operand powinien zawierać 1 kolumnę w Mysql

  3. Formularz PHP session_start():Nie można wysłać ogranicznika pamięci podręcznej sesji

  4. Wybieranie wartości zgrupowanych według określonego identyfikatora

  5. Mieszanie wyników z różnych kategorii, uporządkowanych według wyniku w MySQL