python – 选择订阅特定用户但该用户未订阅的所有用户
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 选择订阅特定用户但该用户未订阅的所有用户,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1115字,纯文字阅读大概需要2分钟。
内容图文
![python – 选择订阅特定用户但该用户未订阅的所有用户](/upload/InfoBanner/zyjiaocheng/721/f2160e4bbba7451d9eacb6b7c13e9dec.jpg)
我有以下表格定义:
subscriptions = db.Table("subscriptions",
db.Column("subscriber_id", db.Integer, db.ForeignKey("users.id"),
primary_key=True),
db.Column("subscribee_id", db.Integer, db.ForeignKey("users.id"),
primary_key=True),
)
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
subscribes = db.relationship('User', secondary=subscriptions,
backref=db.backref('subscribed'),
primaryjoin="User.id==subscriptions.c.subscriber_id",
secondaryjoin="User.id==subscriptions.c.subscribee_id",
)
我需要形成一个查询,选择订阅特定用户但该用户未订阅的所有用户.我已经可以在Python中做到这一点(它们可能比我的描述更准确地描述了我想要的内容):
filter(lambda u: u not in self.subscribes, self.subscribed)
# OR: set(self.subscribed) - set(self.subscribes)
但是如果在SQL端完成它会不会更快?
解决方法:
如果这是在SQL中完成的,我相信您的查询将类似于以下内容:
SELECT
u.id
FROM
subscriptions sub JOIN
users u ON u.id = sub.subscriber_id LEFT JOIN
subscriptions unsub
ON unsub.subscribee_id = sub.subscriber_id
AND unsub.subscriber_id= sub.subscribee_id
WHERE
sub.subscribee_id = :user_id
AND unsub.subscribee_id IS NULL
内容总结
以上是互联网集市为您收集整理的python – 选择订阅特定用户但该用户未订阅的所有用户全部内容,希望文章能够帮你解决python – 选择订阅特定用户但该用户未订阅的所有用户所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】