MichiLee: Bestimmte Zeilen nach einem Select zusammenführen

Beitrag lesen

Hallo Forum,
mein Firefox geht nach einem Update seit 2-3 Tagen nicht mehr, so dass ich auf meine alten Nachrichten nicht antworten konnte. (Hole ich bei Gelegenheit nach, falls ich mich noch bei jemand Bedanken muss oder falls doch noch Fragen ausstehen)
Wie dem auch sei.

Ich mache ein Select auf eine Datenbank und erhalte in etwa solch ein Ergebnis:

BriefingID    Name     RoleID       Right        UserID
2             Bla       4         2              2
2             Bla       2         1              2
2             Bla       3         1              2
2             Bla       4         2              3
3             Bla       2         1              4

Es kann also vorkommen, dass ein Benutzer bei einem Briefing mehrere Rolen haben kann und dementsprechend auch verschiedene Rechte.

Ich will nur allen Briefings alle Benutzer anlegen (mehrmals gelistete User sollen natürlich einmal angelegt werden)
Deshalb überlege ich mir, wenn ein User im Ergebnis mehrmals in einem Briefing auftaucht, dass ich die Zeilen nach UserID zusammenführe und als Right die höchste genommen wird nach dem zusammenführen (Damit er die höchsten Rechte besitzt)

Zudem will ich aber auch in eine Vector<Roles> des Userobjekts, alle Rollen eines Users aufnehmen.

Wie stelle ich das am besten an?

Ich leg ein UserObjekt an und mache ein Select, was für Rollen er in einem Briefing hat und speichere alle Rollen in den Vector. Danach führe ich nochmals ein Select, führe bei mehreren Usern alle Zeilen nach Usern zusammen und nehme die höchste ID.

Meine Frage nun: Wie führe ich die Zeilen zusammen?
(Besser wäre es eventuell alles in einem Schritt, aber die erste While-Schleife muss alles durchgehen und nur für einen User, praktisch alle Rollen speichern. (Kein anlegen eines gleichen Users doppelt) und danach die höchsten Rechte setzen)

viele Grüße
Michi