我有一个用户查询,按每个用户拥有的订单数量(ordersCount)进行过滤.
User.query.filter('ordersCount>2')
Run Code Online (Sandbox Code Playgroud)
如果我运行它,它会说:"where子句中的未知列'ordersCount'"
根据我的经验,我应该使用这样的操作,因为mysql不会允许它不是表的一部分的字段,但如果我运行它而不是过滤器我得到:
(1054, "Unknown column 'ordersCount' in 'having clause'") 'SELECT count(1) AS count_1 \nFROM user \nHAVING ordersCount > 2' ()
Run Code Online (Sandbox Code Playgroud)
那么如何过滤sqlalchemy中的计数列?
van*_*van 11
请参阅订购,分组,限制,偏移等文档.根据提供的示例代码以及您的订单存储在orders表中的假设,您的版本看起来类似于:
>>> s = select([orders.c.user_id, func.count(orders.c.id)]).\
... group_by(orders.c.user_id).having(func.count(orders.c.id) > 2)
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您将获得有user_id问题的用户.如果要检索User对象,只需创建s一个子查询并User使用此子查询加入查询以检索有问题的用法.
| 归档时间: |
|
| 查看次数: |
8333 次 |
| 最近记录: |