musste genau aus diesem grund 2 mal selecten. das erste select brauch ich zum (um-) sortieren der daten, beim 2. funktioniert das grupieren (bei mir) dann wie gewünscht.
wenn ich erst grupiere, dann bekomme ich die daten vom ersten DS und nicht vom aktuellsten bzw. dem mit der höhsten version.
allersings bin ich mir nicht sicher, ob es wirklich eine „funktion“ ist oder zufällig klappt
having und weiteres grupieren hat leider nicht funktioniert,
da bei mir immer der erste gefundene DS angezeigt wurde
ein order by kommt in der ausführung immer nach dem group by, da ändert es gar nichts, in welcher reihenfolge das im sql vorkommt.
hat einer von euch evtl. eine idee wie das problem elegant
(und sicher) zu lösen ist?
ich hatte dasselbe problem auch schon mehrmals. im „schlimmsten“ fall musst du es mit einem subselect lösen. bei meiner aktuellen datenstruktur habe ich das hauptelement in einer eigenen tabelle und die versionen in einer relationstabelle, und in der haupttabelle speichere ich einfach die aktuelle version in einem extra feld. das ist zwar genau genommen überflüssig, aber erspart halt sehr viel arbeit sowohl für mich als auch die datenbank.
zZ. benutz ich ja den schlimmsten fall
aber eine extra tabelle (block_id,version) scheint mir die beste (vorallem sicherste) lösung zu sein. macht auch das einfügen einer neuen version ‚leichter‘