2014-01-24 80 views
1

我必须直接查询的关系,因为我必须seperatly显示它们。查询关联表对象直接

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' 

回答

4

你上面创建一个join()结构,这是一个核心(非ORM)的使用构建代表参加( )的两个表(但不是一个完整的选择())。

使用您通常使用的查询对象开始一个SELECT的ORM时。从类本身查询是一样的烧瓶SQLAlchemy的扩展提供了一个模式,但这些扩展通常在这方面的混乱。鉴于任何类或表,你可以反对使用查询对象查询:

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