无法访问SQLAlchemy查询结果中的别名字段?

2024-04-28 22:29:30 发布

您现在位置:Python中文网/ 问答频道 /正文

无法处理查询对象结果。在这个例子中我没有使用外键。你知道吗

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()

就数据而言,结果是正确的。但是,当我尝试访问单个数据行时,我遇到了一个问题:

人员[0]。lastname按预期工作并返回数据。你知道吗

然而,有一个个人.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,所以很可能这是一个“新手”问题。你知道吗

谢谢。你知道吗


Tags: 数据aslocationpersonlastnameouterjoindisplaytextaliased
1条回答
网友
1楼 · 发布于 2024-04-28 22:29:30

抱歉-RTFM问题-应该是:

你知道吗lookuplocation.displaytext.label标签(“myfield1”), lookupoccupation.displaytext.label标签(“myfield2”)

返回结果后,引用字段个人.myfield你知道吗

很简单。你知道吗

相关问题 更多 >