Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Baris Terkini untuk ID Tertentu dalam Jadual Pangkalan Data?

Bagaimana untuk Mendapatkan Baris Terkini untuk ID Tertentu dalam Jadual Pangkalan Data?

DDD
DDDasal
2024-12-29 09:01:11619semak imbas

How to Retrieve the Most Recent Row for a Specific ID in a Database Table?

Dapatkan Baris Terkini Berdasarkan ID

Dalam jadual pangkalan data yang mengandungi berbilang baris untuk setiap ID, tugasnya adalah untuk mendapatkan hanya yang paling banyak baris terbaru untuk ID yang ditentukan. Pertimbangkan jadual di bawah:

+----+---------------------+---------+
| 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    |
+----+---------------------+---------+

Untuk mendapatkan baris terbaharu dengan ID = 1 berdasarkan lajur 'log masuk', agregat lajur 'log masuk' menggunakan fungsi MAX() dan kumpulan mengikut ID:

SELECT 
 id, 
 MAX(signin) AS most_recent_signin
FROM tbl
GROUP BY id

Pertanyaan ini mengembalikan cap waktu 'log masuk' terkini untuk setiap ID.

Untuk mengekstrak baris lengkap dikaitkan dengan 'log masuk' terbaharu, lakukan INNER JOIN terhadap subkueri yang mengembalikan MAX('log masuk') untuk setiap ID:

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

Pertanyaan ini mendapatkan semula ID, 'log masuk' dan ' log keluar' untuk baris dengan 'log masuk' terbaharu untuk ID = 1.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Baris Terkini untuk ID Tertentu dalam Jadual Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn