0

、私は子供の名前を考えると、以下の表PostgreSQLの隣接リストクエリ

c_relation_investor_main_pfk; c_relation_investor_sub_pfk 
"inv_ho";"inv_ho_r" 
"inv_ho";"inv_ho_sf" 
"inv_priv";"inv_com" 
"inv_priv";"inv_encor" 
"inv_priv";"inv_ho" 
"inv_prof";"inv_b4" 
"inv_prof";"inv_com" 
"inv_prof";"inv_encor" 
"inv_prof";"inv_ho" 
"inv_prof";"inv_pd" 
"inv_prof";"inv_ut" 

を持って、どのように私はすべての先祖を一覧表示することができますか?親の名前が与えられていると、その子孫のすべてをどのようにリストできますか?

+1

は、彼らは、少なくとも再帰的である?...そうでない場合はそのわずか '選択する場所COLNAME = val'質問 –

+0

https://stackoverflow.com/questions/tagged/recursive-query+postgresql –

+0

@Vaoツンはい、その再帰的。 –

答えて

0

私は解決策を投稿しているので、同様の問題に直面している人を助けるかもしれません。

WITH RECURSIVE source(main ,sub) AS (
SELECT character varying 'inv_ho', character varying 'inv_ho_r' 
UNION ALL 
SELECT tb_relation_investor.c_relation_investor_main_pfk, tb_relation_investor.c_relation_investor_sub_pfk 
FROM source JOIN tb_relation_investor ON (source.main=tb_relation_investor.c_relation_investor_sub_pfk) 
) 
SELECT * from source