gpt4 book ai didi

SQLAlchemy 不同的相关对象

转载 作者:行者123 更新时间:2023-12-02 04:56:49 25 4
gpt4 key购买 nike

我有一个简单的消息传递系统,其中包含如下定义的 Conversation、User 和 Message 对象:

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)

class Conversation(db.Model):
id = db.Column(db.Integer, primary_key=True)

class Message(db.Model):
id = db.Column(db.Integer, primary_key=True)
text = db.Column(db.String)
author = db.relationship('User')
conversation = db.relationship('Conversation', backref=db.backref('messages', lazy='dynamic'))

我想获取所有参与对话的用户。

用 SQL 对我来说很容易:

select distinct users.*
from users inner join messages on messages.author_id = users.id
where messages.conversation_id = 1;

但我无法弄清楚如何使用 SQLAlchemy 的语法来做到这一点,所以我取回了对象而不仅仅是字段。理想情况下,我想将其实现为 Conversation 上的 get_authors 方法。

最佳答案

session.query(User).distinct().\
join(Message, Message.author_id == User.id).\
filter(Message.conversation_id == 1)

关于SQLAlchemy 不同的相关对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17840838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com