簡體   English   中英

無法訪問SQLAlchemy查詢結果中的別名字段?

[英]Unable to access aliased fields in SQLAlchemy query results?

與查詢對象結果混淆。 在此示例中,我沒有使用外鍵。

lookuplocation = aliased(ValuePair)

lookupoccupation = aliased(ValuePair)

persons = db.session.query(Person.lastname, lookuplocation.displaytext, lookupoccupation.displaytext).\
         outerjoin(lookuplocation, Person.location == lookuplocation.valuepairid).\
         outerjoin(lookupoccupation, Person.occupation1 == lookupoccupation.valuepairid).all()

就數據而言,結果是正確的。 但是,當我嘗試訪問單個數據行時,我遇到了一個問題:

person [0] .lastname符合我的預期,並返回數據。

但是,結果中有一個person.displaytext,但是由於我為displaytext實體加上了別名,所以我只得到一個結果。 我知道為什么得到結果,但是我需要知道要用來獲取兩個displaytext列的別名字段名稱。

上述聯接生成的實際SQL語句如下:

SELECT person.lastname AS person_lastname, valuepair_1.displaytext AS valuepair_1_displaytext, valuepair_2.displaytext AS valuepair_2_displaytext 
FROM person LEFT OUTER JOIN valuepair AS valuepair_1 ON person.location = valuepair_1.valuepairid LEFT OUTER JOIN valuepair AS valuepair_2 ON person.occupation1 = valuepair_2.valuepairid

但是這些“ as”字段名稱在結果中都不可用。

我是SqlAlchemy的新手,所以很可能是“新手”問題。

謝謝。

抱歉-RTFM問題-應該是:

lookuplocation.displaytext.label(“ myfield1”),lookupoccupation.displaytext.label(“ myfield2”)

返回結果后,使用person.myfield引用字段

簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM