首页 > flask-sqlalchemy两张未设置外键的表,如何联表查询?

flask-sqlalchemy两张未设置外键的表,如何联表查询?

两张表

class Topic(db.Models):
    __tablename__ = 'topic'
    id = db.Column(db.Integer, primary_key = True)
    content = db.Column(db.Text)
 
class Reply(db.Models):
    __tablename = 'reply'
    id = db.Column(db.Integer, primary_key = True)
    topic_id = db.Column(db.Integer)
    content = db.Column(db.Text)
             

如果用

Reply.query.join(Topic, Reply.topic_id==Topic.id).all()

查询,返回的只有表reply的实例,无法获取到表topic的内容。
注意!!我是要用flask-sqlalchemy查询,不是用sqlalchemy来查询,因为还要用到flask-sqlalchemy的paginate方法


results = (db.session.query(Topic.content.label('topic_content'), Reply.content.label('reply_content'))).select_from(Topic, Reply).filter(Topic.id==Reply.topic_id).paginate(page, per_page)

试试这个


result=Reply.query.join(Topic, Reply.topic_id==Topic.id).add_entity(Topic).all() 这样就可以了。
在jijia2模板下可以通过这种方式来访问

for res in result:
    res.Reply.xxx
    res.Topic.xxx

【热门文章】
【热门文章】