pony orm查询中的IN子句

2024-09-30 20:27:57 发布

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

如何在pony orm中使用子查询进行查询

SELECT * 
FROM  child_table
WHERE child_table.masterno IN (SELECT masterno
                    FROM   mastertable 
                    WHERE  mastertable.recorddate > SYSDATE -1)

换句话说。我想做点什么

^{pr2}$

我搞错了

pony.orm.sqltranslation.IncomparableTypesError: Incomparable types 'int' and 'mastertable' in expression: ct.masterno in master_result

哪里有大师的成绩

print(type(master_result))

<;'小马。orm。核心.QueryResult'>


Tags: infrommasterchildormtableresultwhere
1条回答
网友
1楼 · 发布于 2024-09-30 20:27:57

是的,通过Pony API,您将从select()filter()函数中获得QueryResult对象。如果你想从那个查询中得到实体,你可以改变你的行 master_result = target_model.mastertable.select()\ .filter(lambda mt: mt.recorddate > DATE)

master_result = target_model.mastertable.select()\ .filter(lambda mt: mt.recorddate > DATE)[:] <- this will fetch objects

另一种方法可以将QueryResult转换为list,就像results = list(master_result)。您还可以迭代QueryResult对象,并将实体对象作为项获取。 for mastertable in mastertable.select(): mastertable.recordtable = *smth*

相关问题 更多 >