我有一個MySQL數據庫與2個表:如何在MySQL中檢索節點的子節點和大孩子?
節點:id
(這只是例子,在現實中有更多的領域)。
Edge:source
。 target
,它們是2個節點的ID,weight
代表連接強度。
我想通過連接強度和他的孩子的每個孩子他們各自的前20名子女(意味着總共最多400個節點行)爲特定節點ID獲得他的20個頂級子女。
我已經研究過這個問題,我知道最成熟的方式可能是遞歸過程(因爲函數不能在MySQL中遞歸調用),但看到MySQL不支持表變量,我不得不尋找其他的東西臨時表。
畢竟,我仍然失去了如何在地球上我去這個,將不勝感激任何形式的幫助。
難道你確切:它是一個oneshot還是你想經常做? ...?我的問題的目標是決定是否嘗試提供一個簡單的解決方案或者是否真的需要優化。 – farvilain
如果你只是(總是)深入兩層,你可能會自我加入兩次。否則,你可能想看看像neo4j這樣的東西。 – ethrbunny
@farvilain,這是一些網站的應用程序的一部分,所以頻率取決於很多事情。基本上用戶輸入一個id,然後查詢必須運行。 ethrbunny,我試過它與自我加入,它可以正常工作,當前20選擇不需要,但我不知道如何解決問題時,如上所述。另外,如果可能,我想留在MySQL中。 – user3162466