当我在查询中拨打class Voter(db.Model):
histories = db.relationship('VoterHistory', backref='voter', lazy='dynamic')
ncid = db.Column(db.String(80),unique=True)
class VoterHistory(db.Model):
voter_ncid = db.Column(db.String(80), db.ForeignKey('voter.ncid'))
election_lbl = db.Column(db.String(280))
并且我不确定是什么造成这种情况时,我收到了不准确的结果。
模型:
q1 = Voter.query.filter_by(birth_age='25')
q2 = db.and_(Voter.histories.any(VoterHistory.election_lbl == '11/03/2015'),
Voter.histories.any(VoterHistory.election_lbl == '03/15/2016'))
res= q1.join(Voter.histories).filter(q2)
例如
.count
如果我在res
上拨打res.limit(3000).all()
,我会得到~4000个结果。如果我Voter
我得到大约700个结果。
这里发生了什么,我该如何解决?我试图获得3000 app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
个对象。
答案 0 :(得分:0)
这里有两件事情,它们似乎共同产生不一致的结果:
var tenant = searchUser();
var user = tenant.user;
var detail = tenant.detail;
//... do something with user and detail
适用于limit
查询,实际上限制了查询返回的行数SQL
将丢弃重复项。在您的情况下,设置限制为3000确实会限制从SQL返回到3000行的行数,但如果在这3000行中,只有700个不同行{{ 1}}类,只返回700个这样的实例。
在您的情况下,sqlalchemy
看起来是在数据库返回的行数和Voter
实例数之间引入此非对应的那个。
我希望这很清楚。如果没有,我很乐意提供一个例子。