У меня есть две таблицы: users
и messages
. Я хочу получить уникальные значения пар отправителя и получателя. Например:
1 -> 2
1 -> 3
2 -> 1
3 -> 2
Это означает, что пользователь с id = 1 отправляет сообщение на id = 2 et c. После того как я запустил запрос для id = 2, например, я хочу получить 1,3. Фактические таблицы - после удаления ненужных вещей - ниже.
class Users(UserMixin, db.Model):
__tablename__ = 'Users'
id = db.Column(db.Integer, primary_key=True)
messages_sent = db.relationship('Messages', foreign_keys='Messages.sender_id', backref='sender',
cascade='all, delete-orphan')
messages_received = db.relationship('Messages', foreign_keys='Messages.recipient_id',
backref='recipient', cascade='all, delete-orphan')
class Messages(db.Model):
__tablename__ = "Messages"
id = db.Column(db.Integer, primary_key=True)
sender_id = db.Column(db.Integer, db.ForeignKey("Users.id"))
recipient_id = db.Column(db.Integer, db.ForeignKey("Users.id"))
body = db.Column(db.String(140))
timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)