2016-07-21 6 views
1

私は2つのテーブルの選択クエリを書いたとき、私はどのようにクエリを書くかをお勧めしたいと思います。子との選択クエリ

以下には、2つのテーブル(擬似ddl)が存在します。

CREATE PARENT(
IDX int primary key, 
NAME varchar2(40) 
) 

CREATE CHILD(
PARENT_IDX int, 
NAME varchar2(40) 
) 

これは表の状態です。

親:

IDX /NAME 
1 /PARENT1 
2 /PARENT2 
3 /PARENT3 

子供:

私は以下のようなJSPページ内のすべての子どもたちと親リストを印刷したい
PARENT_IDX/NAME 
1  /CHILD1 
1  /CHILD2 
2  /CHILD3 
3  /CHILD4 
3  /CHILD5 
3  /CHILD6 

:のための最善の解決策は何

IDX /NAME  /CHILD 
1 /PARENT1 /CHILD1,CHILD2 
2 /PARENT2 /CHILD3 
3 /PARENT3 /CHILD4,CHILD5,CHILD6 

OracleでSQLを使用していますか?

答えて

1

は、Oracle 11gの以降を使用している場合は、あなたが一緒に親と子テーブルを結合し、CSVは、あなたが欲しい書式を取得するLISTAGG()を使用してくださいすることができますが:

SELECT p.IDX, 
     p.NAME, 
     LISTAGG(COALESCE(c.NAME, 'NA'), ',') "CHILD" 
FROM PARENT p 
LEFT JOIN CHILD c 
    ON p.IDX = c.PARENT_IDX 
GROUP BY p.IDX 
+0

ああ、ありがとうございました。私はそれが最善の解決策だと思う。私は今LISTAGGを実現します。ありがとうございました。 –