2014-01-24 159 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)