Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mendapatkan nilai yang salah untuk kolom lain ketika saya memilih MAX(updated_date)

Anda juga memerlukan klausa GROUP BY atau kueri yang lebih kompleks.

SELECT field1, MAX(updated_date)
  FROM mytable
 GROUP BY field1

Untuk data sampel, ini akan mengembalikan 3 baris.

Kemungkinan besar, Anda ingin:

SELECT t1.field1, t3.max_date
  FROM mytable AS t1
  JOIN (SELECT MAX(t2.updated_date) AS max_date
          FROM mytable AS t2
       ) AS t3
    ON t1.updated_date = t3.max_date;

Untuk data sampel, ini akan mengembalikan 1 baris:

ta3   2012-03-11 11:05:56

Dari DBMS utama, hanya MySQL yang memungkinkan Anda untuk menghilangkan klausa GROUP BY ketika Anda memiliki campuran kolom agregat dan non-agregat dalam daftar pilih. Standar SQL memerlukan klausa GROUP BY dan Anda harus mencantumkan semua kolom non-agregat di dalamnya. Terkadang, di MySQL, menghilangkan klausa GROUP BY menghasilkan jawaban yang Anda inginkan; sesering tidak, ia berhasil memberikan jawaban yang tidak terduga.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kunci mati MySQL InnoDB pada SELECT dengan kunci eksklusif (UNTUK PEMBARUAN)

  2. Tampilkan nilai datetime ke baris yang berbeda di DataGridView

  3. MySQL Rata-rata Setiap 4 Baris

  4. Pertanyaan kueri MySQL sederhana

  5. Pesan:count():Parameter harus berupa array atau objek yang mengimplementasikan Countable codeigniter pada centos