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

Truy vấn SQL trả về tất cả các ngày không được sử dụng trong bảng

Bạn nói đúng - SQL không giúp bạn dễ dàng xác định dữ liệu bị thiếu. Kỹ thuật thông thường là nối chuỗi của bạn (có khoảng trống) với một chuỗi hoàn chỉnh và chọn các phần tử đó trong chuỗi thứ hai mà không có đối tác tương ứng trong dữ liệu của bạn.

Vì vậy, đề xuất của @ BenHoffstein duy trì một bảng ngày vĩnh viễn là một điều tốt.

Ngoài ra, bạn có thể tạo động phạm vi ngày đó với bảng số nguyên . Giả sử integers bảng có một cột i với các số ít nhất là 0 - 13 và bảng của bạn có cột ngày có tên là datestamp :

   SELECT candidate_date AS missing
     FROM (SELECT CURRENT_DATE + INTERVAL i DAY AS candidate_date
             FROM integers
            WHERE i < 14) AS next_two_weeks
LEFT JOIN my_table ON candidate_date = datestamp
    WHERE datestamp is NULL;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL TRÊN CẬP NHẬT KHÓA DUPLICATE trong khi chèn tập hợp kết quả từ một truy vấn

  2. Chốt lại mã ngoại lệ cho PHP, MySQL PDOException?

  3. MySql chọn giá trị mặc định nếu không có kết quả?

  4. Đá quý mysql2 được biên dịch cho thư viện máy khách mysql sai

  5. Sao chép / đồng bộ hóa db Firebird cục bộ sang db trực tuyến