私は今それにほぼ1日を費やしましたが、何か間違ったことをしているようです. わかりました、ここに関係があります: document_urls( doc_id , url_id)
私がやりたいのは、ドキュメントから彼の URL を通じて生成されたすべての子を表示するグラフの並べ替えを作成することです。例 select * from document_urls where doc_id=1
doc_id url_id
1 2
1 3
url_id=3 または 2 のドキュメントをすべて選択すると、 select * from document_urls where url_id=2 or url_id=3 が見つかります
doc_id url_id
1 2
1 3
2 3
ドキュメント 1 のすべてのリンクなどをカバーしたので、ドキュメント 2 で同じ演習を行います。
ここに私の再帰クエリがあります
WITH RECURSIVE generate_links(document_id,url_id) as(
select document_id,url_id from document_urls where document_id=1
UNION ALL
select du.document_id,du.url_id from generate_links gl,document_urls du
where gl.url_id=du.url_id
)
SELECT * FROM generate_links GROUP BY url_id,document_id limit 10;