【问题标题】:Querying association table object directly直接查询关联表对象
【发布时间】:2014-02-15 14:53:24
【问题描述】:

我必须直接查询关系,因为我必须单独显示它们。

task_user = db.Table(
    'pimpy_task_user',
    db.Column('task_id', db.Integer, db.ForeignKey('pimpy_task.id')),
    db.Column('user_id', db.Integer, db.ForeignKey('user.id'))
)

如何在 SQLAlchemy 中执行此操作? 当我尝试这个时:

tasks_rel = task_user.join(Task).join(User).filter(Task.group_id == group_id)

它会导致这个错误:

AttributeError: 'Join' object has no attribute 'filter'

【问题讨论】:

    标签: python sql sqlalchemy flask-sqlalchemy


    【解决方案1】:

    上面的用法是创建一个join() 构造,它是一个核心(非 ORM)构造,表示两个表的 join()(但不是完整的 select())。

    在使用 ORM 时,您通常使用 Query 对象启动 SELECT。从类本身进行查询是由诸如 flask-sqlalchemy 之类的扩展提​​供的模式,但这些扩展通常在这方面令人困惑。给定任何类或表,您可以使用 Query 对象对其进行查询:

    session.query(task_user).join(Task).join(User).filter(Task.group_id == group_id)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多