Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Nilai Lajur Sepadan dengan Nilai Maksimum dalam Setiap Kategori?
Mendapatkan Nilai Lajur Sepadan untuk Pertanyaan Nilai Maksimum
Anda sedang cuba melaksanakan pertanyaan yang mendapatkan semula nilai video_id maksimum untuk setiap video_kategori dan nilai lajur yang sepadan. Walau bagaimanapun, anda menghadapi masalah apabila pertanyaan mengembalikan baris pertama dan bukannya baris yang dikaitkan dengan video_id maksimum.
Untuk menangani cabaran ini, penyelesaian alternatif ialah menggunakan subquery untuk mengenal pasti video_id maksimum yang berbeza. untuk setiap video_category. Dengan menyertai jadual asal dengan subquery, anda boleh memautkan setiap video_id maksimum dengan berkesan kepada nilai lajurnya yang sepadan:
SELECT s.video_id ,s.video_category ,s.video_url ,s.video_date ,s.video_title ,s.short_description FROM videos s JOIN (SELECT MAX(video_id) AS id FROM videos GROUP BY video_category) max ON s.video_id = max.id
Pertanyaan yang disemak ini menggunakan INNER JOIN, yang mengekalkan hanya baris yang memenuhi syarat gabungan. Dalam kes ini, cantuman memastikan bahawa baris dalam jadual (s) utama dipadankan dengan baris dalam subquery (maks) berdasarkan kesetaraan video_id.
Dengan memanfaatkan pendekatan ini, anda boleh mendapatkan semula maksimum video_id untuk setiap kategori dan nilai yang sepadan untuk video_url, video_date, video_title dan short_description.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Lajur Sepadan dengan Nilai Maksimum dalam Setiap Kategori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!