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

MySQL lấy bản ghi ngày cuối cùng từ nhiều

Bạn có thể sử dụng GROUP BY , nhưng điều quan trọng là phải hiểu cách hoạt động của nó.

Khi bạn sử dụng GROUP BY một nhóm các hàng được thu gọn thành một và những gì được hiển thị trong các cột khác không được sử dụng trong GROUP BY của bạn , được xác định bằng cách sử dụng các hàm tổng hợp hoặc nó là một hàng ngẫu nhiên trong nhóm đó. Bạn không thể chắc chắn nhận được hàng tương ứng với hàng được hiển thị chứa MAX() giá trị hoặc bất kỳ hàm tổng hợp nào bạn đã sử dụng. Điều này trở nên đặc biệt rõ ràng, khi bạn thực hiện một truy vấn như:

SELECT id, MIN(whatever), MAX(whatever), another_column
FROM your_table
GROUP BY id

"Another_column" có thể thuộc về hàng chứa giá trị MIN () hoặc giá trị MAX () hoặc thậm chí đối với một hàng khác hoàn toàn không được hiển thị. Trong RDBMS khác với MySQL, nó thực sự bị cấm chọn các cột không sử dụng hàm tổng hợp hoặc không được liệt kê trong GROUP BY , chỉ để ngăn người dùng mắc sai lầm hoặc nghĩ rằng họ đã nhận được kết quả đúng.

Vì vậy, trong trường hợp của bạn, bạn dường như cũng muốn hiển thị cột "giá trị". Vì những lý do trên, câu trả lời của juergen_d là sai, vì nó không chọn "giá trị", và nếu có, bạn không thể chắc chắn đó là "giá trị" đúng. Câu trả lời của Filipe Silva là sai, vì nó nhóm theo "giá trị". Làm điều này trong trường hợp của bạn sẽ thực sự trả lại toàn bộ bảng. Câu trả lời của Romesh là sai, vì sử dụng hai lần MAX() hàm sẽ nhận cho bạn các giá trị tối đa, rõ ràng nhưng không phải là giá trị tương ứng với giá trị ngày giờ.

Vì vậy, bạn phải làm như thế nào? Dưới đây là 3 cách được mô tả . Tìm hiểu chúng bằng cách áp dụng chúng cho chính mình. Không khó lắm đâu :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Riêng biệt phiên bản khác nhau của một trang web

  2. Tôi có thể làm cho Bảng tính Google Drive hoạt động giống như một cơ sở dữ liệu MySQL không?

  3. Cách sử dụng nhiều cơ sở dữ liệu trong Laravel

  4. pdo kết quả miễn phí

  5. Yêu cầu về Blob và Lưu trữ