Mendapatkan Kembali Baris Terkini untuk ID Diberi
Dalam situasi di mana jadual pangkalan data mengandungi berbilang baris untuk ID yang sama, ia mungkin perlu mengekstrak hanya yang paling terkini. Artikel ini membincangkan cara untuk mencapai ini dalam SQL.
Menggunakan jadual yang disediakan sebagai contoh:
+----+---------------------+---------+ | id | signin | signout | +----+---------------------+---------+ | 1 | 2011-12-12 09:27:24 | NULL | | 1 | 2011-12-13 09:27:31 | NULL | | 1 | 2011-12-14 09:27:34 | NULL | | 2 | 2011-12-14 09:28:21 | NULL | +----+---------------------+---------+
Agregat MAX(log masuk) Dikumpulkan mengikut ID
Untuk mendapatkan masa log masuk terbaharu bagi setiap ID, kumpulkan baris mengikut ID dan agregat dengan MAX(log masuk). Ini akan menyediakan senarai ID dengan masa log masuk terkini yang sepadan.
Pertanyaan SQL:
SELECT id, MAX(signin) AS most_recent_signin FROM tbl GROUP BY id
SERTAI DALAM Menentang Subkueri
Untuk mendapatkan semula keseluruhan baris terbaharu bagi ID tertentu (cth., ID=1), gunakan INNER JOIN terhadap subkueri yang mengira MAX(log masuk) setiap ID. Kemudian, tapis keputusan berdasarkan ID yang diingini.
Pertanyaan SQL:
SELECT tbl.id, signin, signout FROM tbl INNER JOIN ( SELECT id, MAX(signin) AS maxsign FROM tbl GROUP BY id ) ms ON tbl.id = ms.id AND signin = maxsign WHERE tbl.id=1
Atas ialah kandungan terperinci Bagaimana untuk Mengambil Baris Terkini untuk ID Diberikan dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!