Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy xuất bản ghi bằng truy vấn JOIN

Kết quả bạn nhận được là đúng vì không có bản ghi nào về tên ngày cụ thể. Vì bạn muốn nhận được tất cả các tên trong ngày, bạn cần phải chiếu toàn bộ nhóm ngày ( sử dụng UNION bên trong SUBQUERY ) và kết hợp nó với truy vấn hiện có của bạn.

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. Tại sao khóa cấp bảng tốt hơn khóa cấp hàng cho các bảng lớn?

  2. làm cách nào để chèn các ký tự unicode vào mysql bằng câu lệnh chèn?

  3. Làm cách nào để chọn hàng dữ liệu đầu tiên và cuối cùng từ kết quả mysql?

  4. Cách tốt nhất để lưu trữ giá trị được mã hóa base64 trong MySQL DB?

  5. Làm thế nào để tham gia hai bảng mysql?