Mendapatkan Nilai Lajur Sepadan untuk Nilai Maksimum
Dalam SQL, anda mungkin menghadapi situasi di mana anda ingin mendapatkan nilai lajur yang sepadan dengan maksimum nilai lajur lain, sambil memastikan bahawa data yang diambil adalah tepat.
Masalah:
Apabila menanyakan jadual untuk mendapatkan lajur tertentu dan mengumpulkan hasil berdasarkan lajur, seperti kategori video, anda boleh memerhatikannya untuk nilai maksimum lajur yang ditetapkan (cth., video_id), ia menarik nilai yang betul tetapi mengembalikan baris pertama dalam jadual untuk semua lajur lain (cth., video_url, video_date, video_title dan short_description).
Penyelesaian:
Untuk mendapatkan semula lajur yang sepadan dengan nilai maksimum dengan sewajarnya, pertimbangkan pendekatan berikut:
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 ini memanfaatkan operasi JOIN untuk memadankan ID video (video_id) daripada subquery yang mengira ID video (id) maksimum untuk setiap kategori video dengan ID video daripada jadual video. Dengan menggunakan syarat JOIN s.video_id = max.id, ia memastikan bahawa hanya baris dengan ID video maksimum untuk setiap kategori dikembalikan.
Pendekatan ini bukan sahaja menyediakan nilai sepadan yang betul untuk ID video maksimum tetapi juga berprestasi jauh lebih pantas daripada penyelesaian yang dicadangkan dalam siaran asal.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Lajur Sepadan untuk Nilai Maksimum dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!