Я потратил почти целый день на это сейчас, и кажется, что я делаю что-то не так.
хорошо, вот соотношение:
document_urls (doc_id, url_id)
что я хочу сделать, это построить граф, который будет показывать всех детей, которые были сгенерированы из документа по его URL-адресам.
пример
выберите * из document_urls, где doc_id = 1
doc_id url_id
1 2
1 3
если я выберу весь документ с url_id = 3 или 2, я найду
выберите * из document_urls, где url_id = 2 или url_id = 3
doc_id url_id
1 2
1 3
2 3
Теперь я делаю то же упражнение с документом 2, так как мы рассмотрели все ссылки на документ 1 и т. Д.
вот мой рекурсивный запрос сейчас
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;