我有两个表用户和父母。
- 每个用户都有一个唯一的 id 和一个父 id(这是将他推荐到网站的人)。
- root 用户的父 id 为 0。
- 具有相同父 ID 的用户是该 ID 的子代
用户
id
姓名
电子邮件
父母
id
parentId
加入金额
我想要一个查询,我将在其中给出父母的 id。
此查询应返回其所有子项以及以下信息
id,姓名,电子邮件,joiningAmount,(此用户拥有的孩子数)
是否可以在一个查询中执行此操作?
如果不是,我应该如何规范化数据库以便在一个查询中完成此操作。
非常感谢任何帮助。
编辑:
users 表将包含所有用户信息
假设这是用户表。
身份证 姓名 电子邮件 1 管理员 admin@web.com 2 约翰·约翰@web1.com 3 拉里·拉里@web2.com 4 琼斯 Jone@web3.com
只有通过推荐才能注册。
由于管理员没有被任何人推荐,因此他的 parentId 为 0。
假设管理员引用了 larry 和 john(因此他们的父 id 为 1)并且 john 从他的推荐中带来了另一个用户,该用户的名字是他的 jone(因此他的父 id 是 john 的)然后是父母表应该是这样的。
加入金额现在可以忽略,因为它只是申请的一部分。
id parentId joinAmount 1 0 1000 2 1 1000 3 1 1000 4 2 1000
所以现在我想要一个查询,如果我传递一个 1(管理员 id)的 id,它应该返回他孩子的
id,姓名,电子邮件,joiningAmount,(**此用户拥有的孩子数**) 2, John, John@web1.com, 1000, 1(因为 john 有 1 个孩子) 3, 拉里, Larry@web2.com, 1000, 0