habe ich eine Tabelle als solche:MYSQL - Gruppe durch und Sortierung nach
ID Field1 Field2 Field3
1 Apple Fruit Cheap
2 Apple Fruit Eatable
3 Apple Food Something
4 Banana Fruit Cheap
5 Banana Food Eatable
6 Cat Pet Weird
7 Cat Pet Friend
8 Cat Pet Amazing
9 Cat Animal Cheap
ich verschiedene Field1, Feld 2 Elemente und sortieren nach Field3 mit „billig“ erhalten möchten. Ich erwarte dies:
ID Field1 Field2 Field3
1 Apple Fruit Cheap
4 Banana Fruit Cheap
9 Cat Animal Cheap
3 Apple Food Something
5 Banana Food Eatable
6 Cat Pet Weird
Ergebnis mit ID hat row = 2,7,8 entfernt werden als ID = 2 gleiche field1 hat, field2 als ID = 1 und ID = 7,8 haben gleiche field1, field2 als ID = 6. ID = 1 und ID = 2 haben dasselbe Field1 und Field2. Nur eine der ID = 6,7,8 kommt zum Ergebnis, wenn Field1, Field2 eindeutig ist.
Ich habe versucht "Gruppierung" und "Reihenfolge nach Feld()", aber für die "Gruppierung" gewünschte Zeilen werden beseitigt. Zum Beispiel, nach der Gruppierung ID = 1 ist nicht vorhanden und ID = 2 Zeile ist vorhanden.
Meine aktuelle Abfrage ist:
select * from tbl
group by field1,field2
order by field(field3,"CHEAP") desc;
Was mich geben nur zwei Reihen mit field3 = "billig" als "Gruppe von" erwägt ID = 2 anstelle von ID = 1
Kann mir jemand helfen ich damit?
Vielen Dank im Voraus.
versuchen Was ist Ihre Frage? – Hooch
Warum möchten Sie 2 und nicht 1 entfernen? –
Ich möchte sicherstellen, dass alle Zeilen mit field3 = "Cheap" im Ergebnis vorhanden sind. Ich denke, ich sollte eine Art Unterabfrage anstelle von Gruppieren verwenden. – rohan