Heim >Datenbank >MySQL-Tutorial >Wie kann ich Zeilen mit dem niedrigsten Wert für jeden Händler in MySQL effizient abrufen?
Zeilen mit dem niedrigsten Wert für mehrere Händler mithilfe von MySQL abrufen
In einer Datenbank mit Spalten einschließlich ID, Name, Wert und Händler, Sie Ziel ist es, Zeilen mit dem niedrigsten Wert für jeden einzelnen Händler abzurufen. Beim Versuch mit MIN() und GROUP BY haben Sie keine Lösung gefunden.
Empfohlene Lösungen:
Lösung 1:
SELECT t1.* FROM your_table t1 JOIN ( SELECT MIN(value) AS min_value, dealer FROM your_table GROUP BY dealer ) AS t2 ON t1.dealer = t2.dealer AND t1.value = t2.min_value
Lösung 2 (Schneller):
SELECT t1.* FROM your_table t1 LEFT JOIN your_table t2 ON t1.dealer = t2.dealer AND t1.value > t2.value WHERE t2.value IS NULL
Erklärung:
Lösung 1 verwendet eine Unterabfrage, um den Mindestwert für jeden Händler zu ermitteln. Anschließend verknüpft es diese Unterabfrage mit der Haupttabelle, um die entsprechenden Zeilen abzurufen.
Lösung 2 nutzt eine Selbstverknüpfung, um effizient Zeilen mit dem niedrigsten Wert für jeden Händler zu finden. Es verwendet einen LEFT JOIN und prüft, ob es eine Zeile mit einem niedrigeren Wert gibt. Wenn nicht, ist es der niedrigste Wert für diesen Händler.
Zusätzliche Informationen:
Dies ist ein häufig auftretendes MySQL-Problem. Weitere Informationen finden Sie in der Dokumentation hier: „Zeilen, die das gruppenweise Maximum/Minimum einer bestimmten Spalte enthalten“.
Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen mit dem niedrigsten Wert für jeden Händler in MySQL effizient abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!