Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengambil Baris Terkini untuk ID Diberikan dalam SQL?

Bagaimana untuk Mengambil Baris Terkini untuk ID Diberikan dalam SQL?

Barbara Streisand
Lepaskan: 2025-01-01 07:45:11
asal
789 orang telah melayarinya

How to Retrieve the Most Recent Row for a Given ID in SQL?

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    |
+----+---------------------+---------+
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan