Heim >Datenbank >MySQL-Tutorial >Wie rufe ich entsprechende Spaltenwerte mit dem Maximalwert in jeder Kategorie ab?
Abrufen entsprechender Spaltenwerte für die Maximalwertabfrage
Sie versuchen, eine Abfrage auszuführen, die den maximalen video_id-Wert für jede video_category und abruft die entsprechenden Spaltenwerte. Sie stoßen jedoch auf ein Problem, bei dem die Abfrage die erste Zeile anstelle der Zeile zurückgibt, die mit der maximalen video_id verknüpft ist.
Um dieses Problem zu bewältigen, besteht eine alternative Lösung darin, eine Unterabfrage zu verwenden, um die eindeutige maximale video_id zu identifizieren für jede video_category. Indem Sie die Originaltabelle mit der Unterabfrage verknüpfen, können Sie jede maximale video_id effektiv mit den entsprechenden Spaltenwerten verknüpfen:
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
Diese überarbeitete Abfrage verwendet einen INNER JOIN, der nur die Zeilen beibehält, die die Join-Bedingung erfüllen. In diesem Fall stellt der Join sicher, dass die Zeilen in der/den Haupttabelle(n) basierend auf der video_id-Äquivalenz mit den Zeilen in der Unterabfrage (max) abgeglichen werden.
Durch die Nutzung dieses Ansatzes können Sie das Maximum abrufen video_id für jede Kategorie und die entsprechenden Werte für video_url, video_date, video_title und short_description.
Das obige ist der detaillierte Inhalt vonWie rufe ich entsprechende Spaltenwerte mit dem Maximalwert in jeder Kategorie ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!