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

Chọn Ngày và Giờ Sớm nhất từ ​​Danh sách Phiên của Người dùng Riêng biệt

Đây là một biến thể của vấn đề "lớn nhất-n-mỗi nhóm" xuất hiện trên StackOverflow vài lần mỗi tuần.

SELECT 
        a1.accessid, 
        a1.date, 
        a1.time 
FROM 
        accesslog a1
LEFT OUTER JOIN
        accesslog a2
  ON (a1.accessid = a2.accessid AND a1.userid = a2.userid
    AND (a1.date > a2.date OR a1.date = a2.date AND a1.time > a2.time))
WHERE a1.userid = '1234'
  AND a2.accessid IS NULL;

Cách hoạt động của điều này là chúng tôi cố gắng tìm một hàng (a2) có cùng accessid và userid, và ngày hoặc giờ sớm hơn hàng a1. Khi chúng tôi không thể tìm thấy hàng trước đó, thì a1 phải hàng sớm nhất.

Lại nhận xét của bạn, tôi chỉ thử nó với dữ liệu mẫu mà bạn cung cấp. Đây là những gì tôi nhận được:

+----------+------------+----------+
| accessid | date       | time     |
+----------+------------+----------+
|        1 | 2009-08-15 | 01:01:01 | 
|        2 | 2009-09-01 | 14:01:01 | 
+----------+------------+----------+

Tôi đang sử dụng MySQL 5.0.75 trên Mac OS X.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi nghiêm trọng:Sử dụng $ this khi không ở trong ngữ cảnh đối tượng trong

  2. Tải nhiều tệp lên máy chủ với php không tải lên máy chủ tất cả các tệp

  3. Cách hàm CHARACTER_LENGTH () hoạt động trong MySQL

  4. Trình điều khiển JDBC Scala và MySQL

  5. CẬP NHẬT MySQL:5 mẹo hàng đầu cho nhà phát triển T-SQL