2011-12-05 77 views
1

讓我們有3個表A,B,C以及它們之間的關係。如何映射一個表和第三個表的第三個表的關係?

A是多對一與乙

B是一對多使用C

如何寫在SQLAlchemy的關係能夠獲得C來自A,等:AC [0] .some_column

+3

你的意思是多對多的關係? http://www.sqlalchemy.org/docs/orm/relationships.html#many-to-many –

回答

3

在您的例子

A是多對一與乙

B是一對多使用C

所以最後

A是多對多的C是,如果你想從A

你必須在每個模型創建relationship直接訪問訪問C的最後關係。

例如

A.x is relationship with B 
B.y is relationship with C 

那麼你可以通過A.x.y訪問將返回你的列表中。

要訪問像A.x你可以使用secondaryjoin你可以給查詢,這將是直接訪問C來自A.

例如

Class A: 

    p = relationship(C, 
      primaryjoin=A.x==B.y, 
      secondaryjoin=B.y==C.z 
      ) 

這對你可能是工作。

+0

謝謝,這就是解決方案。順便說一句:有沒有選擇避免'.x'代理並獲得直接訪問,如A.C? – xliiv

+2

嘗試使用secondaryjoin的新代碼示例 – Nilesh

相關問題