Heim >Datenbank >MySQL-Tutorial >Wie rufe ich entsprechende Spaltenwerte mit dem Maximalwert in jeder Kategorie ab?

Wie rufe ich entsprechende Spaltenwerte mit dem Maximalwert in jeder Kategorie ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-31 19:59:10285Durchsuche

How to Retrieve Corresponding Column Values with the Maximum Value in Each Category?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn