的集列表這裏的問題JIST:鑑於套,如列表:分區通過共享元素
[ (1,2,3), (5,2,6), (7,8,9), (6,12,13), (21,8,34), (19,20) ]
返回的套組,使得集列表已共享元素在同一組中。
[ [ (1,2,3), (5,2,6), (6,12,13) ], [ (7,8,9), (21,8,34) ], [ (19,20) ] ]
注意stickeyness - 設定(6,12,13)不具有共享單元(1,2,3),但他們得到投入,因爲同組(5,2 ,6)。
更復雜的是,我要指出,我真的沒有這些整齊套,而是一個數據庫表與幾百萬行,看起來像:
element | set_id
----------------
1 | 1
2 | 1
3 | 1
5 | 2
2 | 2
6 | 2
等。所以我很想用SQL來實現它,但是我會很高興解決方案的一個大方向。
編輯:將表列名更改爲(element,set_id)而不是(key,group_id),以使術語更一致。請注意,Kev的答案使用舊的列名稱。
能否詳細說明一下? – itsadok 2008-10-07 15:37:02
如果沒有lft,rgt策略,這很難做到(除非你想循環樹遍歷循環) – 2008-10-07 18:21:02