Vinzenz Mai: ORDER BY mit GROUP BY kombinieren

Beitrag lesen

Hallo Jo,

habe eine table "model"

das feld "brand_id"  ist eine parent id, und somit ein verweis auf eine andere table.
"model_bez" ist der name des models, also text.

ich vermute, dass verschiedene Datensätze mit gleicher "brand_id" verschiedene Werte im Feld "model_bez" haben können.

wie lässt sich ORDER BY mit GROUP BY kombinieren ?

Problemlos:

  
GROUP BY foo  
ORDER BY bar

dabei kommt in allen mir bekannten SQL-Dialekten die GROUP-BY-Klausel zwingend vor der ORDER-BY-Klausel.

ich würde gerne alle brand_id gruppieren und innerhalb nach alphabet ordnen !

Ich vermute, Du möchtest alle Modellbezeichnungen der gleichen Marke zusammen haben und innerhalb der Marke alphabetisch aufsteigend sortiert?

ist das möglich ?

Ja.

mein aktueller query:

$q="SELECT id,brand_id,model_bez FROM model ORDER BY model_bez  ASC";

  
Nach id dürftest Du nicht gruppieren können, da id wohl jeden Datensatz eindeutig kennzeichnet, also raus damit. ASC ist die Standardsortierreihenfolge und somit überflüssig.  
  
Du möchtest nach brand\_id und model\_bez gruppieren und zuerst nach brand\_id, dann nach model\_bez sortieren:  
  
~~~sql
  
SELECT  
    brand_id,  
    model_bez  
FROM  
    model  
GROUP BY brand_id, model_bez  
ORDER BY brand_id, model_bez

Freundliche Grüße

Vinzenz