2 ms·
There is no need to wrap it with a query. You can just add a filter: mynewquery = myquery.filter(lambda c: c.name > 'G') The new query will produce the fo
by amalashkevich 12y ago
There is no need to wrap it with a query. You can just add a filter:
mynewquery = myquery.filter(lambda c: c.name > 'G')
The new query will produce the following SQL:
SELECT `c`.`id`
FROM `customer` `c`
LEFT JOIN `order` `order-1`
ON `c`.`id` = `order-1`.`customer`
WHERE `c`.`name` > 'G'
GROUP BY `c`.`id`
HAVING coalesce(SUM(`order-1`.`total_price`), 0) > 1000
- zzzeek 12y agoWell right, this is exactly a SQLAlchemy-style syntax, except a tad more verbose :). This is the "dropping into a SQLAlchemy-style approach" I referred to. As far as the "AST allows caching" advantage, over at https://bitbucket.org/zzzeek/sqlalchemy/issue/3054/new-idea-for-bake https://bitbucket.org/zzzeek/sqlalchemy/issue/3054/new-idea-... we're working out a way to give people access to the "lambda: <X>" -> cached SQL in a similar way, if they want it.