我有一個父子關係表的id,這是多對多關係表和用戶id存儲在用戶表中,表格的基本格式在這裏:mysql:在父親兒子關係表中查找第一個父親的單個查詢
.......................... | father_id | son_id | ........................... | A | B | .......................... | B | C | .......................... | C | D | .......................... | D | E |
現在我一定要找到兒子的任何一個偉大的祖父,我可以通過單一的MySQL查詢做到這一點還是我必須使用PHP循環?
MySQL是不是好來處理遞歸查詢,但如果關係的深度已知,那麼使用單個查詢您可以旅行來回。另一方面,您可以使用PHP遞歸函數輕鬆完成工作。 – 2014-10-28 06:51:24
感謝您的建議,所以它不可能與MySQL – Shivam 2014-10-30 07:20:19
「最偉大的祖父」並不意味着什麼。如果你想*偉大的祖父*,那麼「關係的深度是已知的」,並且查詢很簡單。 (否則請參閱[this](https://dba.stackexchange.com/questions/7147/find-highest-level-of-a-hierarchical-field-with-vs-without-ctes/7161#7161)。)但是「任何一個兒子」都不清楚。使用小而明確的句子和短語。不要滿足於某些不清楚的事情;繼續編輯。你想要每個父親是曾祖父的父親嗎? – philipxy 2014-12-09 07:29:31