Mysql
 sql >> база данни >  >> RDS >> Mysql

Извличане на записи с JOIN заявка

Резултатът, който получавате, е правилен, защото няма записи за конкретно име на ден. Тъй като искате да получите всички имена на дни, трябва да проектирате пълен набор от дни (използвайки UNION вътре в ПОДЗАПЪРКА ) и го присъединете към съществуващата си заявка.

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. JPA EclipseLink DatabaseException:„таблица foo.SEQUENCE не съществува“

  2. Как да подобрим производителността на MySQL AWS 2 пъти над Amazon RDS на същата цена

  3. Защо nosql с cassandra вместо mysql?

  4. Разбиране на изгледите в SQL

  5. Най-добрият кошмар за наследена база данни на MySQL