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

min (column) không trả về cho tôi dữ liệu chính xác của các cột khác

Bạn lấy

  1. id,
  2. ngày thấp nhất cho id đó và
  3. bất kỳ của những cái tên đi cùng với nó.

Các cơ sở dữ liệu khác (bình thường) thậm chí sẽ không cho phép truy vấn này. Họ sẽ buộc bạn sử dụng một hàm tổng hợp cho name hoặc thêm tên vào nhóm group by cũng. MySQL thay vào đó chọn một giá trị ngẫu nhiên và có vấn đề với bạn.

Để giải quyết vấn đề này, truy vấn của bạn sẽ trở nên phức tạp hơn rất nhiều:

select
  t.id, 
  t.mydate,
  t.name
from
  myTable t
where
  t.mydate = 
    (select 
      min(td.mydate) 
    from 
      myTable td 
    where 
      td.id = t.id)

Hoặc:

select
  t.id, 
  t.mydate as date,
  t.name
from
  myTable t
  inner join 
    (select 
      td.id
      min(td.mydate) as date
    from 
      myTable td 
    group by 
      td.id) tx on tx.id = t.id and tx.date = t.mydate


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thả khóa duy nhất muli-column mà không làm rơi khóa ngoại?

  2. Cách truy cập cơ sở dữ liệu MySql từ xa từ Ứng dụng iPhone

  3. Chèn bản ghi vào Cơ sở dữ liệu MySQL bằng C #

  4. Khắc phục “ERROR 3942 (HY000):Mỗi hàng của mệnh đề VALUES phải có ít nhất một cột” khi sử dụng Câu lệnh VALUES trong MySQL

  5. Làm thế nào để xóa các mô hình khỏi django?