假设我有一个这样简单数据库
我想使用SQLAlchemy执行这个SQL查询,以便只获得10个最新的结果,这些结果是关于属于某个父对象的具有特定Child_id的玩具的。
toys = Toy.query.filter(Toy.child_id == 77).filter(Child.parent_id == 'parent1').order_by(Toys.id.desc()).limit(limit).all()
但是如果我执行这个,我只得到一个结果。
回应这个问题,我得到
"SELECT toys.id AS toys_id, toys.toy_type AS toy_type FROM toys, children WHERE toys.child_id = 77 ORDER BY records.id DESC LIMIT 10;"
执行这个原始查询,我得到了10个相同的toys结果。
这个父项共有15个子项。如果我将查询限制设为20,则会得到15个相同的玩具结果和5个相同的不同玩具结果。它总是将相同玩具结果的数量作为子项的数量。
所以我猜这和连接表和限制结果有关...
2条答案
按热度按时间ljsrvy3e1#
解决了。我没有使用连接语句,这就是为什么它没有工作。
dohp0rv52#
我希望你做类似
Session.query(Toys).filter(Child_id == 77).limit(10).all()
之类的事情。