Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencari Kedudukan dan ID Terkini untuk Setiap Keselamatan dalam Pangkalan Data?

Bagaimana untuk Mencari Kedudukan dan ID Terkini untuk Setiap Keselamatan dalam Pangkalan Data?

Susan Sarandon
Lepaskan: 2025-01-04 13:33:39
asal
692 orang telah melayarinya

How to Find the Most Recent Position and ID for Each Security in a Database?

Maksimum Mengikut Kumpulan

Masalah:

Dapatkan semula kedudukan terkini dan ID yang sepadan untuk setiap keselamatan dalam jadual yang mengandungi berbilang kedudukan dengan keselamatan yang sama.

Data Jadual:

id security buy_date
26 PCS 2012-02-08
27 PCS 2013-01-19
28 RDN 2012-04-17
29 RDN 2012-05-19
30 RDN 2012-08-18
31 RDN 2012-09-19
32 HK 2012-09-25
33 HK 2012-11-13
34 HK 2013-01-19
35 SGI 2013-01-17
36 SGI 2013-02-16
18084 KERX 2013-02-20
18249 KERX 0000-00-00

Penyelesaian:

Menggunakan LEFT JOIN dan NULL-filtering:

SELECT p1.id,
       p1.security,
       p1.buy_date
FROM positions p1
LEFT JOIN positions p2
    ON p1.security = p2.security
    AND p1.buy_date < p2.buy_date
WHERE
    p2.id IS NULL;
Salin selepas log masuk

Dalam pertanyaan ini, kami menggunakan LEFT JOIN untuk menggabungkan jadual kedudukan dengan dirinya sendiri, memadankan baris dengan keselamatan. Syarat p1.buy_date < p2.buy_date memastikan bahawa p2 mewakili kedudukan yang lebih terkini untuk keselamatan yang sama.

Klausa WHERE kemudiannya menapis mana-mana baris di mana kedudukan yang lebih terkini wujud, meninggalkan kami dengan hanya kedudukan terkini untuk setiap keselamatan.

Keputusan:

id security buy_date
27 PCS 2013-01-19
31 RDN 2012-09-19
34 HK 2013-01-19
36 SGI 2013-02-16
18084 KERX 2013-02-20

Atas ialah kandungan terperinci Bagaimana untuk Mencari Kedudukan dan ID Terkini untuk Setiap Keselamatan dalam Pangkalan Data?. 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