Heim >Datenbank >MySQL-Tutorial >Wie rufe ich den Maximalwert und zugehörige Spalten in SQL-Unterabfragen ab?
Maximalwert-Unterabfragen in SQL
In dieser Abfrage versuchen Sie, die entsprechenden Werte für Spalten basierend auf dem Maximalwert einer anderen Spalte abzurufen . Während Ihr ursprünglicher Ansatz eine GROUP BY-Anweisung verwendet, ruft er zuverlässig nur die maximale Video-ID ab, nicht jedoch die zugehörigen Daten aus anderen Spalten.
Um dieses Problem zu beheben, sollten Sie die Verwendung einer Unterabfrage in Betracht ziehen, die die eindeutigen maximalen Video-IDs pro Kategorie identifiziert . Die folgende modifizierte Abfrage folgt diesem Ansatz:
SELECT * FROM videos WHERE video_id IN ( SELECT DISTINCT MAX(video_id) FROM videos GROUP BY video_category ) ORDER BY video_category ASC
In dieser Abfrage wird eine Unterabfrage verwendet, um den Satz maximaler Video-IDs zu isolieren. Anschließend wird die Tabelle mit diesem Satz gefiltert, um alle Spalten für die entsprechenden maximalen Video-IDs abzurufen. Durch die Nutzung des IN-Operators und die Verkettung der Ergebnisse ruft diese Abfrage effizient die gewünschten Werte ab.
Alternativ können Sie eine Verknüpfungsoperation verwenden, um das gleiche Ergebnis zu erzielen, wie unten gezeigt:
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
Dieser Ansatz verwendet einen Join, um die Zeilen mit der maximalen Video-ID mit den entsprechenden Zeilen aus der Videotabelle abzugleichen und den vollständigen Satz von Spalten für jede maximale Video-ID abzurufen. Beide Lösungen lösen das Problem effektiv, indem sie die Werte erfassen, die mit den maximalen Video-IDs in jeder Kategorie verknüpft sind.
Das obige ist der detaillierte Inhalt vonWie rufe ich den Maximalwert und zugehörige Spalten in SQL-Unterabfragen ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!