我有一个表“会员”,其中有“用户”和“ referredBy”列。

给定一个用户,我希望得到该用户推荐的所有“ n级”玩家。对于n = 1,我们只是对您直接推荐了多少玩家感兴趣:

SELECT * FROM affiliates WHERE referredBy = "me"


但是,如果您推荐的人又推荐了其他人,则该人被视为您的次要(n = 2)会员。例如,如果表如下所示:

user  | referredBy |
bob   | andy       |
cindy | andy       |
dave  | cindy      |


然后,安迪的第一级会员是鲍勃和辛迪。戴夫是他的二级会员,因为戴夫是由安迪(辛迪)的会员推荐的。

如何获得代表特定用户的n级会员的所有条目?

最佳答案

基本上有两种方法可以这样做。

第一种方法是使用后端语言从数据生成树。 Here 您可以找到一些代码示例

第二种方法要求您更改表结构并使用Nested set model
您可以找到一些示例here

您也可以尝试复制粘贴联接,就像其他建议的那样,但这是不切实际的,并且会花费大量时间和内存处理大量数据。

关于mysql - MySQL获得n级成员(member),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28979925/

10-11 02:59