SQL mit string_agg

Hallo,

Ich habe leider schon wieder ein problem mit einem SQL-Statement. Irgendwie klappt das in letzter Zeit alles nicht wie gewollt.

Ich habe eine verschiedene Tabellen mit akzessionen, sorten und bluetenfarben und bluetenbeschreibungen die miteinander verknüpft sind. Hab mal ein Bild in den Anhang kopiert. Hoffe das ist sichtbar.

Dazu möchte ich jetzt die verknüpften Tabellen (n:m) in einer Spalte zusammen darstellen. Ich habe das jetzt mit der Funktion string_agg probiert. Solange ich nur eine Tabelle (z.B. bluetenfarben) verknüpfe funktioniert das auch sehr gut, sobald ich aber auch die zweite verknüpfungstabelle (bluetenbeschreibungen) dazu nehme werden mir die bluetenfarben und beschreibungen immer ein dutzend mal angezeigt.

Mein SQL wäre so:
SELECT
akzessionen.id_akzession,
akzessionen.name_akzession,
sorten.name_sorte,
string_agg(bluetenfarben.bluetenfarbe,’,’ order by akzessionen.id_akzession) AS bluetenfarbe,
string_agg(blueten_pflanzenteile.blueten_pflanzenteil,’,’) AS bluetenform
FROM
akzessionen
LEFT OUTER JOIN sorten ON (akzessionen.id_sorte = sorten.id_sorte)
LEFT OUTER JOIN verkn_bluetenfarben_sorten ON (verkn_bluetenfarben_sorten.id_sorte = sorten.id_sorte)
LEFT OUTER JOIN bluetenfarben ON (verkn_bluetenfarben_sorten.id_bluetenfarbe = bluetenfarben.id_bluetenfarbe),
verkn_blueten_pflanzenteile
LEFT OUTER JOIN public.blueten_pflanzenteile ON (verkn_blueten_pflanzenteile.id_blueten_pflanzenteil = public.blueten_pflanzenteile.id_blueten_pflanzenteil)
GROUP BY
akzessionen.id_akzession,
akzessionen.name_akzession,
sorten.name_sorte

Irgendwie ist da etwas falsch, oder ich verstehe das nicht.
Hat jemand Zeit einen Blick darauf zu werfen und kann mir behilflich sein?

Vielen, vielen Dank wieder einmal
Gruss
Hanno
sql.PNG

Ohne daß ich da jetzt durchsteige: das hat eigentlich immer als Ursache, daß die Joins nicht stimmen. Oder das Datenmodell.