如何在mysql表中获取所有孩子的用户?

时间:2012-08-30 14:07:43

标签: mysql sql

我有一个用户名表。

它包含以下字段。

user_id  |  parent_user_id  | name

考虑我的user_id是5,我希望得到拥有parent_user_id 5的用户及其子女和孩子等等的用户

如何获得特定父母身份的所有孩子?

2 个答案:

答案 0 :(得分:0)

你不能递归地做。您可以使用LEFT JOIN执行此操作,但必须选择最大深度。

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 suggested ,您可以考虑其他替代方案,例如NoSQL

答案 1 :(得分:0)

尝试类似的东西。

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

这将使父ID的所有孩子都为5