python-flask-sqlalchemy:查询一个表中的记录,而另一表中没有相关记录(或某个值的记录)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-flask-sqlalchemy:查询一个表中的记录,而另一表中没有相关记录(或某个值的记录),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1959字,纯文字阅读大概需要3分钟。
内容图文
![python-flask-sqlalchemy:查询一个表中的记录,而另一表中没有相关记录(或某个值的记录)](/upload/InfoBanner/zyjiaocheng/885/09c66f79b3eb401eb1d752149164147c.jpg)
我正在编写一个简单的应用程序,可以帮助人们致电选民.我不希望我的志愿者多次欺骗任何选民.我如何获得尚未被召集的选民名单?我正在将烧瓶与flask-sqlalchemy一起使用.
选民模型:
class Voter(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80))
phone = db.Column(db.String(20))
vanid = db.Column(db.String(20))
address = db.Column(db.String(255))
city = db.Column(db.String(255))
zip_code = db.Column(db.String(20))
lat = db.Column(db.Float)
lng = db.Column(db.Float)
...
通话模型:
class Call(db.Model):
id = db.Column(db.Integer, primary_key=True)
voter_id = db.Column(db.Integer, db.ForeignKey('voter.id'))
voter = db.relationship('Voter', backref=db.backref('calls', lazy='dynamic'))
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
user = db.relationship('User', backref=db.backref('calls', lazy='dynamic'))
time = db.Column(db.DateTime)
status_code = db.Column(db.String(20))
...
call.status_code将包含诸如complete,busy,wrong_number等值.
我想获得一个有资格被召集的所有选民的名单,这样我就可以选出一个服务于志愿者. (即call.status_code!=已完成等.或者没有相关的通话记录)
如果要在原始SQL中执行此操作,则可能会执行以下操作:
Select [whatever]
FROM Voter v
LEFT JOIN Call c on c.voter_id = v.id
WHERE c.status_code IS NULL OR c.status_code = 'busy'
我无法在sqlalchemy中弄清楚.有什么见解吗?
解决方法:
您可能会使用类似:
required_voters = db.session.query(Voter).outerjoin(Call).filter((Call.voter_id == None) | (Call.status_code != 'completed'))
编辑
建议查询:
vwcc = db.session.query(distinct(Call.voter_id)).filter(Call.status_code == 'completed').subquery()
this will select all unique voters with completed calls
现在主要
required_voters = db.session.query(Voter).outerjoin(Call).outerjoin(vwcc,vwcc.voter_id == Voter.id)).filter((vwcc.voter_id == None)&(((Call.voter_id ==无)|(Call.status_code!=’完成’)))
我相信这将选出所有符合以下条件的选民:
-没有完整状态的电话
和
-没有通话,或者他们的通话没有完成状态
请记住,我是从脑子里写出来的,所以语法可能有些偏离
内容总结
以上是互联网集市为您收集整理的python-flask-sqlalchemy:查询一个表中的记录,而另一表中没有相关记录(或某个值的记录)全部内容,希望文章能够帮你解决python-flask-sqlalchemy:查询一个表中的记录,而另一表中没有相关记录(或某个值的记录)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。