SQLAlchemy:访问 group_concat 的数据
SQLAlchemy: Access data of group_concat
我正在学习python,也许我下面的问题听起来有点傻,但我自己找不到答案:
在我的代码中,我有以下查询:
jobs = session.query(Ecordov, Ecordovadr, func.group_concat(Ecordovadr.ooaname1)).outerjoin(Ecordovadr).filter(Ecordov.oovpudate.like('2015-07-02')).group_by(Ecordov.oovorder).order_by(desc(Ecordov.oovputimev))
它被评估为:
SELECT ecordov.oovkey AS ecordov_oovkey, ecordov.oovorder AS ecordov_oovorder, ecordov.oovpudate AS ecordov_oovpudate, ecordov.oovputimev AS ecordov_oovputimev, ecordovadr.ooakey AS ecordovadr_ooakey, ecordovadr.ooaname1 AS ecordovadr_ooaname1, ecordovadr.ooaorder AS ecordovadr_ooaorder, group_concat(ecordovadr.ooaname1) AS group_concat_1
FROM ecordov
LEFT OUTER JOIN ecordovadr ON ecordov.oovorder = ecordovadr.ooaorder
GROUP BY ecordov.oovorder
ORDER BY ecordov.oovputimev DESC
运行 这直接反对 mysql 按预期工作并给了我预期的结果。
此外,做类似
的事情
for x in jobs:
x.Ecordov.oovorder
在我的 python 代码中给出了正确的结果。
但是,我不知道如何访问 group_concat 函数的数据。
我试过
的变体
for x in jobs:
x.group.concat1
但我得到的只是:
AttributeError: 'result' object has no attribute 'group'
谁能指出我正确的方向?看来,我自己也想不通。
在此先致谢并致以最诚挚的问候!
func.group_concat(Ecordovadr.ooaname1)
在结果集中创建一个匿名字段,因此无法通过名称访问。
要按名称访问它,必须像这样指定标签:
func.group_concat(Ecordovadr.ooaname1).label('ooanames')
这将计算为以下 sql:
group_concat(ecordovadr.ooaname1) AS 'ooanames'
那么,可以表示为:
for x in jobs:
x.ooanames
如果未指定标签,则该字段仍可按位置单独访问,即
for x in jobs:
x[7] # unless I miscounted from your example
我正在学习python,也许我下面的问题听起来有点傻,但我自己找不到答案:
在我的代码中,我有以下查询:
jobs = session.query(Ecordov, Ecordovadr, func.group_concat(Ecordovadr.ooaname1)).outerjoin(Ecordovadr).filter(Ecordov.oovpudate.like('2015-07-02')).group_by(Ecordov.oovorder).order_by(desc(Ecordov.oovputimev))
它被评估为:
SELECT ecordov.oovkey AS ecordov_oovkey, ecordov.oovorder AS ecordov_oovorder, ecordov.oovpudate AS ecordov_oovpudate, ecordov.oovputimev AS ecordov_oovputimev, ecordovadr.ooakey AS ecordovadr_ooakey, ecordovadr.ooaname1 AS ecordovadr_ooaname1, ecordovadr.ooaorder AS ecordovadr_ooaorder, group_concat(ecordovadr.ooaname1) AS group_concat_1
FROM ecordov
LEFT OUTER JOIN ecordovadr ON ecordov.oovorder = ecordovadr.ooaorder
GROUP BY ecordov.oovorder
ORDER BY ecordov.oovputimev DESC
运行 这直接反对 mysql 按预期工作并给了我预期的结果。
此外,做类似
的事情for x in jobs:
x.Ecordov.oovorder
在我的 python 代码中给出了正确的结果。
但是,我不知道如何访问 group_concat 函数的数据。 我试过
的变体for x in jobs:
x.group.concat1
但我得到的只是:
AttributeError: 'result' object has no attribute 'group'
谁能指出我正确的方向?看来,我自己也想不通。
在此先致谢并致以最诚挚的问候!
func.group_concat(Ecordovadr.ooaname1)
在结果集中创建一个匿名字段,因此无法通过名称访问。
要按名称访问它,必须像这样指定标签:
func.group_concat(Ecordovadr.ooaname1).label('ooanames')
这将计算为以下 sql:
group_concat(ecordovadr.ooaname1) AS 'ooanames'
那么,可以表示为:
for x in jobs:
x.ooanames
如果未指定标签,则该字段仍可按位置单独访问,即
for x in jobs:
x[7] # unless I miscounted from your example