首先,如果事實證明我想要做的是在這裏抽菸,我絕不是數據庫或SQLA專家。 =)SQLAlchemy,用表繼承過濾連接的查詢
我有兩個類,人員和組織,使用表繼承從聯繫繼承。 (Person.id是Contact.id的fkey),它工作正常。
我想從搜索框中搜索並獲取所有聯繫人列表。通常,當我在一組事物後,我這樣做:
def build_query(self):
return self.session.query(Person)
def filter_query(self, query)
if self.search_form_values.get('name_last',None):
query = query.filter(
Person.name_last==self.search_form_values.get('name_last')
)
...
return query
然後在其他地方查詢得到執行。問題是我想找回聯繫人對象列表 ,但我想過濾Organization.name,Person.name_last和Person.name_first,所有這些值都是從鍵入 的值到搜索的「名稱」框中形成。我無法弄清楚如何用一個查詢來做到這一點,不知道是否有可能。 雖然我確實希望避免讓兩個單獨的查詢產生交錯結果。
有沒有一些過濾功夫,讓我做到以上?即
- 找回所有的聯繫人:
- 已經name_last或name_first匹配,如果聯繫人是一個人
- 有名稱匹配,如果接觸是一個組織
謝謝
Iain