Php 是否可以编写递归mysql查询来解决复杂的逻辑问题

Php 是否可以编写递归mysql查询来解决复杂的逻辑问题,php,mysql,Php,Mysql,我有一个复杂的小组模块计划 表结构: 组: GroupID、GroupName、GroupImage、StatusID 集团成员: GroupMemberID、GroupID、ModuleID、ModuleEntityID 用户: UserID,FirstName,LastName 模块: ModuleTable,ModuleID 第一组 用户-2 其他-3 所以在group members表中不仅有用户,甚至任何旧组本身都可以是任何组的成员,如果组是任何组的成员,则意味着所有组成员都可以自动

我有一个复杂的小组模块计划

表结构:

组:
GroupID、GroupName、GroupImage、StatusID
集团成员:
GroupMemberID、GroupID、ModuleID、ModuleEntityID
用户:
UserID,FirstName,LastName
模块:
ModuleTable,ModuleID
第一组
用户-2
其他-3
所以在group members表中不仅有用户,甚至任何旧组本身都可以是任何组的成员,如果组是任何组的成员,则意味着所有组成员都可以自动成为新组的一部分

示例:假设我在a组中有2个成员,我创建了一个b组,其中有一个成员和a组,那么b组总共有3个成员(当然是唯一的)

所以在我的表中,我在GroupMembers表中插入moduleid和moduleentityid(userid/groupid)

复杂零件

如果我使用相同的人创建任何组,那么如果有人尝试使用相同的人创建成员,那么它将不会创建新记录,而只返回现有的id。如果它不存在,则创建新记录

我的问题是假设我有一个x组,成员是:a、b、c和d 和另一组y成员:a和b

现在我试图通过添加c、d和y组来创建新组,实际上y组包含a和b,所以这个组的成员将是a、b、c和d,我已经为它创建了x组,所以它应该返回现有组,而不是创建新组

但我在表中有ModuleID和ModuleEntityID,所以我不知道如何比较

请提供我至少任何链接或来源

也可以像递归一样认为a组可能包含b组,e组也包含d组和e组,e组包含x组

所以我需要递归mysql查询来解决这个问题

思考如下:

SELECT UserID FROM (
    @var:=SELECT IF(ModuleID=3,ModuleEntityID,@var) as UserID FROM GroupMembers
) tbl

TIA:)

MySQL不支持递归查询。它甚至不支持窗口功能。MariaDB确实支持窗口函数,但仍然不支持递归函数。如果我是你,我肯定会改用PostgreSQL。否则,您将不得不编写大量的程序代码。。。