Ich habe eine Tabelle, die Produktinformationen mit mehreren Exemplaren eines Produkts mit demselben Titel enthält, die durch verschiedene Farben und ihre IDs identifiziert werden. Ich muss die gesamte Zeile ausgeben, wo die ID = die maximale ID nach dem Titel gruppiert ist, aber ich kann es nicht dazu bringen, dies zu tun. Hier ist eine sehr vereinfachte Tabelle und einige Beispieldaten:
%Vor%In diesem Beispiel mit meinem Code, bekomme ich 1 Rico rot blah1, wenn ich 3 Rico gelb blah3 will.
Hier ist der Code, den ich verwende:
%Vor%UPDATE: Danke Leute,
Ich habe die Antwort von alinoz verwendet, um den folgenden Code zu finden, der funktioniert:)
%Vor%Aaahhh, die guten alten Größte-n-pro-Gruppe ...
%Vor%Natürlich sollten Sie dies entsprechend Ihren Bedürfnissen anpassen.
Außerdem denke ich, dass dies ein "Muss" ist: SQL Wählen Sie nur Zeilen mit Max-Wert für eine Spalte
Neben Adrians und Salmans Ansatz gibt es auch diesen, der zu unterschiedlichen Ergebnissen führt, wenn zwei oder mehr Zeilen mit derselben (maximalen) ID vorhanden sind. Es wird nur eine Zeile pro Titel angezeigt, während die andere Abfrage alle anzeigt (in Ihrem Fall ist das wahrscheinlich irrelevant, wenn Sie nach ID sortieren, was ich für den Primärschlüssel halte):
%Vor%Ich denke, es ist nicht notwendig, Subselects zu verwenden:
%Vor%Es ist nur ein schnelles Beispiel aus meinen Tests. Einfach in der substring_indexes auf die gleiche Weise bestellen und ein gutes Trennzeichen verwenden.
Viel Spaß
Tags und Links sql mysql aggregate-functions greatest-n-per-group