14歳の自分に衝撃の事実を告げてください

以下のような【TABLE1】と【TABLE2】をID_SUBの列で結合した結果を
【A.結果】のように取得したいのですがうまくいきません。

【TABLE1】
ID ID_SUB
1 A1
2 B1

【TABLE2】
ID ID_SUB ID_SUB_CODE
1 A1 AAA1
2 A1 AAA2
3 B1 BBB1
4 B1 BBB2

【A.結果】
ID_SUB ID_SUB_CODE
A1 "AAA1,AAA2"
B1 "BBB1,BBB2"

いろいろ調べたのですが、MySQLにはGROUP_CONCATの
関数を使うと簡単に出来るみたいですが、PostgreSQLには
似たような関数がなく、ARRAYが使えるかな?と思ってためしてみましたが

array_to_string(ARRAY(ID_SUB_CODE, ','))

等のような感じで試した結果、ID_SUB_CODEが
全て連結されるような使い方しか出来ませんでした。

A1 "AAA1,AAA2,BBB1,BBB2"
B1 "AAA1,AAA2,BBB1,BBB2"

何か良い方法はありますでしょうか?

A 回答 (1件)

select id_sub,


( select array_to_string(ARRAY(select id_sub_code from table2
where table1.id_sub=table2.id_sub ), ',') )
from table1;

なんて参考になりませんか。
    • good
    • 5
この回答へのお礼

お返事ありがとうございます。
理想通りの結果を得ることができました。
2日ほど悩んでいたのがすっきりしました。

お礼日時:2008/10/04 10:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報