Als ich eine der SQL-Queries für das e-learning Portal geschrieben habe, kam darin auch ein JOIN
-Statement vor. Ich habe mich also innerlich auf das 'manuelle' zusammenfassen der Ergebnisse im Code mittels einer map[string]string
vorbereitet, da ist
mir durch Zufall die postgresql json_agg
aggregate function begegnet (postgresql aggregate functions). Die query würde dann folgendermaßen aussehen:
SELECT units.*, json_agg(pages.page_id) AS pages_arr FROM units LEFT OUTER JOIN pages ON ... GROUP BY units.unit_id
Der pages_arr
-Wert wird dann als JSON-Array zurückgeliefert, das einfach mit einem beliebigen JSON-Parser in der jeweiligen Programmiersprache in ein Array oder eine Liste verwandelt werden kann.
Sehr praktisch wie ich finde!