Mengambil Data Yang Terakhir Dimasukkan ke Dalam Tabel dari Database MySQL

Beberapa waktu yang lalu saat saya sedang merancang database untuk sebuah aplikasi management keluar masuk kendaraan angkutan, saya dihadapkan pada kondisi dimana saya harus mengetahui status terakhir semua kendaraan yang dimiliki oleh perusahaan. Bagimana cara mendapatkan resultset seperti yang diharapkan tersebut di MySQL?

Pokok Masalah

Seandainya saya mempunyai tabel seperti ini :

Tabel “status_bus”
unsorted_data_example

Apabila kita melakukan sorting berdasarkan nopol bus, kita akan mendapatkan histori status dari semua bus.

sorted_data_example

Dari tabel tersebut dapat kita ketahui status semua bus dari waktu ke waktu. Bagaimana caranya kalau kita ingin mendapatkan data berupa status terakhir semua bus? Bagaimana cara kita mendapatkan resultset seperti di bawah ini :

resultset_status_terakhir_data_mysql

Dari tabel tersebut kita dapat ketahui bagaimana status terakhir semua bus dan data tersebut bisa kita gunakan untuk berbagai kebutuhan.

Bagaimana Membuatnya?

Ada 2 cara untuk mendapatkan resultset seperti di gambar terakhir :

  1. dari sisi pemrograman;
  2. dari sisi database.

Yang akan saya share disini adalah menggunakan metode dari sisi database. Dimana kita melakukan sedikit trik disini

MySQL MAX Function

MySQL mempunyai fungsi MAX() yang dapat digunakan untuk mendapatkan nilai terbesar dari kumpulan nilai. Fungsi ini dapat diaplikasikan untuk menemukan semisal : harga termahal, penjualan terbanyak, angka terbesar, dan lain-lain.

Kembali ke permasalahan, kita asumsikan pada tabel pertama yang kita bahas sebelumnya kolom id berbanding lurus dengan kolom tanggal. Semakin besar nilai dari kolom id berarti semakin baru nilai kalender pada kolom tanggal. Dengan begitu kita dapat mencari status terakhir semua bus dengan acuan kolom id menggunakan fungsi MAX() dan statement GROUP BY.


Semoga membantu