Unterabfrageergebnis in Array konvertieren

Unterabfrageergebnis in Array konvertieren

Ich möchte, dass meine Unterabfrageergebnisse (mehrere Zeilen) in meiner Abfrage als einzelne Zeile zurückgegeben werden. Zum Beispiel.

select u.url, (select c.categoryid from category c
where c.categoryid = u.categoryid) from url u

Wenn die URL mehrere Kategorien enthält, gibt die Unterabfrage mehrere Zeilen wie folgt zurück:
P.S-Unterabfrage gibt mehrere Zeilen zurück. In den meisten Datenbanken wird PostgreSQL nicht unterstützt

url | categoryid
---------------------
1   |  1
1   |  2
2   |  1

Das gewünschte Ergebnis ist wie folgt

url | categoryid
---------------------
1   |  1,2
2   |  1

Ich bin mir nicht sicher, wie einfach es in anderen Datenbanken wie Oracle oder MySQL sein kann. PostgreSQL hat jedoch den Array-Datentyp bereitgestellt. Mit Array ist es sehr einfach, das zu bekommen, was ich will. Ich muss meine Abfrage in ändern

select u.url, (select array(select c.categoryid from category c
where c.categoryid = u.categoryid))as categoryid from url u

Ergebnis ~

url | categoryid
---------------------
1   |  {1,2}
2   |  1

Fertig ~ PostgreSQL Array Rock ~