Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Ambil catatan menggunakan kueri GABUNG

Hasil yang Anda peroleh benar karena tidak ada catatan pada nama hari tertentu. Karena Anda ingin mendapatkan semua nama hari, Anda perlu memproyeksikan rangkaian hari yang lengkap (menggunakan UNION di dalam SUBQUERY ) dan gabungkan dengan kueri Anda yang ada.

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. Masukkan Data ke dalam Database MySQL

  2. Permintaan LIKE MySQL dengan garis bawah

  3. Di MySQL 5, SELECT COUNT(1) FROM table_name sangat lambat

  4. Pilih hasil yang ditetapkan ke dalam variabel, dan kemudian gunakan variabel itu dalam pembaruan nanti dalam prosedur tersimpan yang sama

  5. mysql_fetch_row() vs mysql_fetch_assoc() vs mysql_fetch_array()