Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih 3 Rekod Terkini dengan Nilai Unik dalam Lajur Lain?

Bagaimana untuk Memilih 3 Rekod Terkini dengan Nilai Unik dalam Lajur Lain?

Barbara Streisand
Lepaskan: 2024-11-27 03:47:09
asal
206 orang telah melayarinya

How to Select the 3 Most Recent Records with Unique Values in Another Column?

Memilih Rekod Terkini dengan Nilai Terbeza: Pendekatan Disemak

Soalan yang dikemukakan berkaitan dengan mendapatkan semula tiga rekod terkini daripada jadual berdasarkan pada lajur masa, dengan syarat tambahan bahawa rekod ini mesti mempunyai nilai yang berbeza dalam lajur lain, dirujuk sebagai pengecam lain. Untuk mencapai matlamat ini, pertanyaan SQL berbilang muka diperlukan.

Kekurangan Pertanyaan Asal

Pertanyaan percubaan yang mula-mula menghadapi had disebabkan susunan operasi yang wujud dalam SQL. Pengumpulan berlaku sebelum membuat pesanan, yang mengakibatkan data yang salah dikembalikan.

Pertanyaan Disemak

Untuk menangani ini, pertanyaan yang lebih canggih ialah diperlukan:

SELECT *
FROM `table`
WHERE `id` = (
    SELECT `id`
    FROM `table` as `alt`
    WHERE `alt`.`otheridentifier` = `table`.`otheridentifier`
    ORDER BY `time` DESC
    LIMIT 1
)
ORDER BY `time` DESC
LIMIT 3
Salin selepas log masuk

Penjelasan:

  • Subkueri mendapatkan semula id rekod terkini untuk setiap nilai pengecam lain yang berbeza. Subkueri ini memastikan keunikan.
  • Pertanyaan utama kemudian memilih tiga rekod teratas daripada jadual berdasarkan lajur masa, memastikan ia mempunyai nilai pengecam lain yang unik.
  • Akhir sekali, rekod ini disusun mengikut nilai masa mereka dalam tertib menurun dan terhad kepada tiga yang paling terkini.

Atas ialah kandungan terperinci Bagaimana untuk Memilih 3 Rekod Terkini dengan Nilai Unik dalam Lajur Lain?. 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