1

我有一个用户表名。

它包含以下字段。

user_id  |  parent_user_id  | name

考虑我的 user_id 是 5,我想获取具有 parent_user_id 5 的用户及其孩子和孩子的孩子等

如何获取特定父母ID的所有孩子?

4

2 回答 2

0

你不能递归地做到这一点。你可以用LEFT JOINs 来做,但你必须选择一个最大深度。

SELECT * FROM users u1
LEFT JOIN users u2 ON u1.user_id = u2.parent_user_id
LEFT JOIN users u3 ON u2.user_id = u3.parent_user_id
WHERE u1.user_id = [SOME_USER_ID]

但正如Mike Brant 建议的那样,您可能会考虑其他替代方案,例如NoSQL

于 2012-08-30T14:40:43.613 回答
0

尝试类似的东西。

    SELECT user_id FROM users WHERE parent_user_id = "5" GROUP BY user_id 

这将给父 id 的所有孩子是 5

于 2012-08-30T16:29:11.913 回答