サブクエリの結果を配列に変換
サブクエリの結果(複数行)がクエリの単一行として返されるようにします。 例えば。
select u.url, (select c.categoryid from category c where c.categoryid = u.categoryid) from url u
URLに複数のカテゴリが含まれている場合、サブクエリは次のように複数の行を返します
P.Sサブクエリは複数の行を返しますほとんどのデータベースではサポートされていませんが、PostgreSQLはサポートされています
url | categoryid --------------------- 1 | 1 1 | 2 2 | 1
私が望んでいた結果は次のとおりです
url | categoryid --------------------- 1 | 1,2 2 | 1
oracleやmysqlのような他のデータベースでどれだけ簡単に実現できるかわかりませんが、PostgreSQLはArrayデータ型を提供しており、配列を使用すると必要なものを簡単に取得できます。 クエリをに変更する必要があります
select u.url, (select array(select c.categoryid from category c where c.categoryid = u.categoryid))as categoryid from url u
結果〜
url | categoryid --------------------- 1 | {1,2} 2 | 1
完了〜PostgreSQL Array Rock〜