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

Bagaimana Mencari Kedudukan Terkini dengan Cekap untuk Setiap Keselamatan dalam Pangkalan Data?

Susan Sarandon
Lepaskan: 2025-01-05 02:07:40
asal
878 orang telah melayarinya

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

Maksimum Mengikut Kumpulan

Anda cuba mendapatkan semula kedudukan terbaharu untuk setiap keselamatan daripada jadual tertentu. Untuk mencapai matlamat ini, anda boleh menggunakan pertanyaan berikut:

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, gabungan kiri digunakan untuk membandingkan setiap baris dalam jadual kedudukan dengan setiap baris lain dengan keselamatan yang sama. Lajur tarikh_beli digunakan untuk menentukan baris mana yang paling terkini. Klausa WHERE kemudiannya menapis mana-mana baris yang bukan yang paling terkini untuk keselamatan masing-masing.

Hasil pertanyaan ini akan menjadi jadual dengan satu baris untuk setiap keselamatan, yang mengandungi id, keselamatan dan keselamatan terkini. buy_date untuk keselamatan itu.

Pertanyaan ini lebih cekap daripada pendekatan berasaskan subkueri yang anda cuba sebelum ini kerana ia tidak memerlukan berbilang laluan melalui jadual kedudukan. Sebaliknya, ia menggunakan gabungan tunggal untuk mengenal pasti baris terbaharu bagi setiap keselamatan, menjadikannya lebih pantas untuk set data yang besar.

Atas ialah kandungan terperinci Bagaimana Mencari Kedudukan Terkini dengan Cekap 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