我有以下数据库架构

class posts(Base):
    __tablename__ = 'xposts'
    id = Column(Integer, primary_key=True)



class Comments(Base):
    __tablename__ = 'comments'
    id = Column(Integer, primary_key=True)
    comment_parent_id=Column(Integer,unique=True)
    #comment_id fetches comment of a comment ie the comment_parent_id
    comment_id=Column(Integer,default=None)
    comment_text=Column(String(200))


数据库中的值是

1   12  NULL    Hello First comment
2   NULL    12  First Sub comment


我想使用sqlalchemy来获取帖子的所有评论和子评论,并且到目前为止

qry=session.query(Comments).filter(Comments.comment_parent_id!=None)
print qry.count()


有没有一种方法可以在查询中获取注释的所有子注释,而在同一张表(注释)上尝试了outerjoin,这看起来很愚蠢,但失败了。

最佳答案

在sqlalchemy查询中使用了all()函数之后,就可以使用count和len来查找数据库中的总行。
因为此查询提供了2'd列表结果。

qry=session.query(Comments).filter(Comments.comment_parent_id!=None).all()

len(qry)

关于python - 在同一表中获取与父项相关的子项元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12753049/

10-16 13:20