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 ~