Rumah pangkalan data tutorial mysql Bagaimana untuk MEMILIH Baris dengan Masa Tarikh MAX untuk Setiap Rumah dalam MySQL?

Bagaimana untuk MEMILIH Baris dengan Masa Tarikh MAX untuk Setiap Rumah dalam MySQL?

Jan 25, 2025 am 06:38 AM

How to SELECT Rows with the MAX Datetime for Each Home in MySQL?

mysql: Memilih baris dengan datetime maksimum untuk setiap kumpulan

Panduan ini menunjukkan bagaimana untuk mendapatkan baris dengan cekap yang mengandungi nilai datetime maksimum untuk setiap kumpulan yang berbeza dalam jadual MySQL. Ini adalah cabaran SQL biasa, sering melibatkan subqueries atau fungsi tingkap.

senario:

Bayangkan Jadual () Penggunaan Sumber Pemain Penjejakan di Rumah Berbeza:

TopTen

Matlamatnya adalah untuk mencari, untuk setiap
CREATE TABLE TopTen (
  id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  home INT UNSIGNED NOT NULL,
  datetime DATETIME NOT NULL,
  player VARCHAR(6) NOT NULL,
  resource INT NOT NULL
);
Salin selepas log masuk
, rekod dengan entri paling terkini (

), termasuk maklumat home dan datetime dari rekod terbaru itu. player resource

Pendekatan yang tidak cekap (dan mengapa mereka gagal):

mudah

dan

tidak akan berfungsi secara langsung, sebagai GROUP BY agregat data, kehilangan lajur yang tidak diagihkan seperti MAX(). Percubaan menggunakan subqueries untuk mencari datetime maksimum untuk setiap rumah dan kemudian bergabung kembali ke meja asal sering membawa kepada hasil yang salah atau tidak lengkap. GROUP BY player

Penyelesaian yang berkesan:

Penyelesaian yang paling berkesan memanfaatkan diri dengan subquery:

pertanyaan ini berfungsi dengan:
SELECT tt.*
FROM TopTen tt
INNER JOIN (
    SELECT home, MAX(datetime) AS MaxDateTime
    FROM TopTen
    GROUP BY home
) groupedtt ON tt.home = groupedtt.home AND tt.datetime = groupedtt.MaxDateTime;
Salin selepas log masuk

    subquery ():
  1. pertanyaan dalaman ini mencari maksimum untuk setiap groupedtt, mengumpulkan hasilnya dengan . datetime home home Sertai:
  2. Pertanyaan luar menyertai jadual asal (
  3. alias sebagai ) dengan hasil subquery. Keadaan memastikan bahawa hanya baris yang sepadan dengan kedua -dua TopTen dan maksimum tt dimasukkan ke dalam hasil akhir. JOIN home datetime Kaedah ini memastikan bahawa semua lajur dari jadual asal (termasuk
  4. dan
) dikembalikan untuk baris yang mewakili maksimum

untuk setiap player. Ini mengelakkan kehilangan data dan memberikan maklumat lengkap yang diperlukan. resource

Atas ialah kandungan terperinci Bagaimana untuk MEMILIH Baris dengan Masa Tarikh MAX untuk Setiap Rumah dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kurangkan penggunaan memori MySQL di Docker Kurangkan penggunaan memori MySQL di Docker Mar 04, 2025 pm 03:52 PM

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Mar 19, 2025 pm 03:51 PM

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama Mar 04, 2025 pm 04:01 PM

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin) Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin) Mar 04, 2025 pm 03:54 PM

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Apa itu SQLite? Gambaran Keseluruhan Komprehensif Apa itu SQLite? Gambaran Keseluruhan Komprehensif Mar 04, 2025 pm 03:55 PM

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah Mar 04, 2025 pm 03:49 PM

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Mar 21, 2025 pm 06:28 PM

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Mar 18, 2025 pm 12:01 PM

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?

See all articles