我有以下 SQLAlchemy 表:
\n\n\n\nfrom sqlalchemy.ext.declarative import declarative_base\n\nBase = declarative_base()\n\nclass NetworkLink(Base):\n """Network immediate link between a franchisee and his franchisor\n\n """\n __tablename__ = \'network_link\'\n\n id_franchisee = Column(Integer, ForeignKey(\'user.id\'), primary_key=True)\n id_franchisor = Column(Integer, ForeignKey(\'user.id\'))\nRun Code Online (Sandbox Code Playgroud)\n\n它基本上代表了一个树状的网络结构。
\n\n给定特许人的 id,我需要获取整个子树中所有后代的 id。\n例如,如果表如下:
\n\nid_franchisor | id_franchisee \n1 | 2\n1 | 3\n2 | 4\n2 | 5\n4 | 6\nRun Code Online (Sandbox Code Playgroud)\n\n然后给定 id 1 我需要 1,2,3,4,5,6,而给定 2 我需要 2,4,5,6。
\n\n我知道这不是解决此问题的最有效的表表示形式,但此操作将很少执行,并且插入将更加常见。
\n\n我正在尝试使用递归查询来实现此功能,如下所示:
\n\n"""\nWITH RECURSIVE recursive_franchisee(id) AS\n(\n SELECT %s\n UNION ALL\n SELECT L.id_franchisee\n FROM recursive_franchisee …Run Code Online (Sandbox Code Playgroud)