Klaus: Wie baue ich die MySQL-Abfrage am Besten?

Beitrag lesen

Hi ChrisB und Dedlfix,

Dieser sog. Gruppenwechsel/Gruppenbruch ist ein absolut grundlegendes Prinzip in der Programmierung – und unter „aufwendig“ verstehe ich nun wirklich was anderes. (Zumal wenn er nur auf einer Ebene stattfindet.)

Das Prinzip des Gruppenwechsels kenne ich und wende ich auch schon immer dann an, wenn ich die Ausgabe nach einem Kriterium kategorisieren möchte.
Da ich ich erst beim Gruppenwechsel weiß, ob ich jetzt die Zeile komplett ausgeben kann oder nicht, müsste ich mir alle immer alle Felder des vorangehenden Satzes gemerkt haben und nicht nur das eine Kategoriefeld.

Eine zweite Idee ist, mit einer Single-Abfrage zu garantieren, dass nur 1 Satz pro Person gesammelt wird und in der Schleife dann mit einem neuen Select immer wieder neu die Daten aus der Tabelle Infos zu holen.

Datenbankabfragen in Schleifen == so gut wie immer Pfui Bah.

Ich habe es jetzt im Moment so gelöst, dass ich mittels "group by idnr" nur einen Satz erhalte und dann mit einem zusätzlichen Select dann die zustäzlichen Infos abrufe. Zumindest funktioniert es.

(P.S. MySQL kennt z.B. noch GROUP_CONCAT – aber abgesehen davon, dass das in der möglichen Länge der Daten beschränkt ist, haftet dem für mich auch immer ein bisschen was „unsauberes“ an. Der Gruppenwechsel ist hier für mich der way to go.)

GROUP_CONCAT werde ich mir noch anschauen, kenne ich bisher nicht.
Vielleicht lässt sich damit die Abfrage doch etwas eleganter lösen und ich kann auf den Select in der Schleife verzichten.

Klaus