Hay,
ist es eigentlich in mySQL > 5.0.1x normal, dass mandavor nicht sortieren kann, bevor er gruppiert?
ja, zumindest nicht auf der selben SELECT-Ebene. Aus deiner Problembeschreibung erahne ich, dass du sowas wie MAX suchst, aber ohne deine Datenstrukturen ist es schwer abzuschätzen. Beschreibe bitte deine Tabellen im Detail, welche Daten sich darin befinden und wie dein Ergebnis aussehen soll.
Ich hole alle Verkaufsartikel (Table: Verkaufsartikel ) und LEFT JOIN'e dies mit Gebote (Table: Verkaufsgebote) und hole das Höchstgebot (bieterID) und wieviele Gebote (count(verkaufID) vorliegen. (Falls überhaupt Gebote vorliegen, ansonsten bleiben der rechte Teil des Datensatzes leer, da ja LEFT JOIN)
Wenn mehrere Gebote nun vorliegen, habe ich mehrere Datensätze, deshalb gruppiere ich nach verkaufid.
Jetzt erhalte ich alle Verkaufsartikel mit irgendeinem willkürlichen Gebot und nicht das Höchstgebot, da ich ja gruppiert habe. Ich hätte das ganze mit ORDER BY sortiert, ganz oben das Höchstgebot und dann sollte er es nach oben gruppieren.
Hoffentlich war das verständlich. Ansonsten mache ich kurz eine kleine Tabellenstruktur und die Query.
select a.verkaufid, a.verkaufstext, b.gebot, b.mitgliedsID, c.mitgliedsName, count(b.verkaufid) from Verkaufsartikel as a left join (Verkaufsgebote as b inner join User as c on b.bieterID=c.mitgliedID) on a.verkaufid=b.verkaufid where ..... group by b.verkaufid
Etwas anderes Nebenbei. Anstatt Left Join habe ich mal mich einwenig in Sub-Selects eingelesen und habe folgende Fehlermeldung:
Operand should contain 1 column(s)
Kann man im Sub-Select nur ein Feld auslesen oder auch gleich mehere?
Sprich:
select a.feld1, a.feld2, (select b.feld3, b.feld4, c.feld5 from tabelle b INNER JOIN tabelle c where b.feld1=c.feld1) from tabelle a where a.field>0;
Muss ich da noch nen Zusammenhang zwischen Sub-Select und tabelle a herschaffen?