在MYSQL中获取子级别

时间:2014-08-27 04:45:40

标签: php mysql

  • 在执行MLM项目时,我可以使用以下查询获取用户及其子级的层次结构

    SELECT t1.id AS lev0, t2.id AS lev1, t3.id AS lev2, 
                     t4.id AS lev3,t5.id AS lev4,t6.id AS lev5,
                     t7.id AS lev6  
    FROM users AS t1
            LEFT JOIN users AS t2 ON t2.referred_by = t1.id
            LEFT JOIN users AS t3 ON t3.referred_by = t2.id
            LEFT JOIN users AS t4 ON t4.referred_by = t3.id
            LEFT JOIN users AS t5 ON t5.referred_by = t4.id
            LEFT JOIN users AS t6 ON t6.referred_by = t5.id
            LEFT JOIN users AS t7 ON t7.referred_by = t6.id 
    WHERE t7.id='$uid'"; 
    
  • 我想知道从中搜索到的特定用户的级别 数据库基于他的身份证,以便将一些金额分配给他的父母和祖父母

  • 对于例如:1-> 2-> 3-> 4-> 5,这里' 5'是5级。我想知道如何在我输入用户ID' 5'以及如何执行此操作时在mysql中获取此信息...感谢任何帮助..

  • 每个成员都可以拥有无​​限的儿童成员

这是表结构


| id| username| email | referred_by | | 1| abc |mail.com| | | 2| xyz |mail.com| 1 | | 3| |mail.com| 2 | | 4| |mail.com| 3 | | 5| |mail.com| 4 |

1 个答案:

答案 0 :(得分:0)

您最好将字段hierarchy_level添加到表中,并在每次添加新用户(hierarchy_level = referred_user.hierarchy_level + 1)时进行设置。

如果您不经常编辑用户的推荐人,那将是完美的解决方案。否则,每次更改层次结构时都应更新记录。

如果您需要经常获取用户的层次结构,还应添加一个字段,该字段描述每个用户的层次结构。例如:

  | id| username| email  | referred_by | hierarchy
  |  1|  abc    |mail.com|             |
  |  2|  xyz    |mail.com|    1        | 1
  |  3|         |mail.com|    2        | 1,2
  |  4|         |mail.com|    3        | 1,2,3
  |  5|         |mail.com|    4        | 1,2,3,4

您提供的查询费用很高,并且不会显示完整的层次结构。