這個問題是一個奇怪的問題,我想我只是想着這個錯誤。我試圖(遞歸)獲取與給定承包商關聯的所有頁面URL。這三個相關的表是:SQL/MySQL遞歸從同一張表中拉出
|-------------------------------------------------|
| client_sections |
|-------------------------------------------------|
| contractor_id | reusable_section_id |
|-------------------------------------------------|
|--------------------------------------------------------|
| reusable_sections |
|--------------------------------------------------------|
| reusable_category_id | reusable_section_id |
|--------------------------------------------------------|
|--------------------------------------------|
| reusable_content |
|--------------------------------------------|
| reusable_section_id | page_url |
|--------------------------------------------|
現在,這裏是需要 - 第一個查詢是
SELECT reusable_section_id FROM client_sections where contractor_id = '119'
這得到所有頂級「父母節」 - 這是在reusable_category_id
表reusable_sections
。如果我不得不在那裏停下來,我會處理它。但是我要注意的是,每個返回的部分「可能」都是父級部分。我試過一個嵌套的SELECT
,結果是沒有什麼災難!
什麼,我試圖:
» Get contractor parent sections by contractor ID from client_sections table
» get sections by reusable_category_id = reusable_section_id in reusable_sections --
» get page_url for all the sections returned (including the initial parents)
by reusable_section_id in reusable_content -- I am good until this point
» recur the last two steps with the current reusable_section_id as
reusable_category_id to check for children (!!#[email protected]#!!!)
» Finally return all pages for all sections under that contractor_id
我試圖查詢從瘋狂JOINS
s到嵌套SELECT
s到無濟於事。我讀過很多帖子,包括This One。我是一名有能力的SQL開發人員,我認爲我的邏輯是有缺陷的,向正確方向發展的一個簡單點可能會激發我的創造力! WHILE
循環是最好的方法嗎?嵌套0? JOIN
?我的大腦被炸了!幫幫我?
如何遞歸的多層次,你期待什麼呢?如果您沒有限制,則僅通過執行左外連接就無法解決此問題。你將需要一個存儲過程,否則你將不得不使用編程語言來實現它。它基本上是一棵樹。 –
理論上它可能是無限的..這就是爲什麼遞歸讓我難倒了......我可以用JOIN來完成,否則...... – Zak
https://stackoverflow.com/questions/10646833/using-mysql-query-to-traverse-行 - 製作 - 遞歸 - 樹:D。 看到這個:https://www.slideshare.net/billkarwin/models-for-hierarchical-data –