python - 获取与同一个表中的父元素相关的子元素

标签 python mysql sqlalchemy

我有以下数据库架构

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()

有没有一种方法可以获取查询中评论的所有子评论,我在同一个表(评论)上尝试过外连接,但它看起来很愚蠢并且失败了。

最佳答案

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

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

len(qry)

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

相关文章:

python - 使用 pandas 和 GNU Parallel 将数据并行导入 MySQL

python - 如何从文件中获取信息到Python?

mysql - SQL中基于值的条件在哪里?

php - 带参数的 Cakephp 原始查询

javascript - 提交数据时没有出现警告框

python - 无法捕获 Flask 应用程序中的 _mysql_exceptions.OperationalError

python - 使用 pyODBC 的 fast_executemany 加速 pandas.DataFrame.to_sql

python - 如何使用 Beautifulsoup 解析网站

python - "can' t 在编码的 urlopen 请求上将字节连接到 str"

python - 如何从 MinIO 响应中获取对象?