我如何查询 table A 和 B,从 B 中获取一列并将其添加到结果中?烧瓶

How do i query table A and B,fetch a column from B and add it to the result ? Flask

我正在尝试查询两个 table 旅馆和房间,方法是加入它们然后获取 Hostel.name 我的 Room.hostel_id == Hostel.id 以便我的最终查询具有房间数据和来自宿舍class,Hostel.name.

以下是我的 classes 宿舍

class Hostel(UserMixin, db.Model):
    __tablename__ = "hostel"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False, index=True, unique=True)
    location = db.Column(db.String(300), nullable=False)    
    management = db.Column(db.String(300), nullable=False) 
    rooms = db.Column(db.String(100), nullable=False)
    caretaker = db.Column(db.String(300), nullable=False)
    contact = db.Column(db.String(10), nullable=False)  
    description = db.Column(db.Text, nullable=False)

房间

class Room(UserMixin, db.Model):
    __tablename__ = "room"
    id = db.Column(db.Integer, primary_key=True)
    rent = db.Column(db.Integer)
    deposit = db.Column(db.Integer)
    amenities = db.Column(db.String(300), nullable=False)
    size= db.Column(db.String(300), nullable=False)
    status = db.Column(db.String(300), nullable=False)
    hostel_id = db.Column(db.Integer,nullable = False)

我尝试使用以下代码行;

room_data = Room.query\
    .join(Hostel, Room.id==Hostel.id)\
    .add_columns(Hostel.name)\
    .filter(Room.hostel_id == Hostel.id)

room_data = Room.query.join(Hostel).filter(Room.hostel_id == Hostel.id).order_by(Room.id.desc()).all()

帮我解决这个问题,以便我的查询包含房间 table 的所有详细信息和来自旅馆 table 的新列,该列具有相应的旅馆名称

谢谢大家。我只是添加了一个关系并使用了一个 backref 从父 table

获取字段

将以下内容添加到我的 房间 table;

hostel_id = db.Column(db.Integer, db.ForeignKey("hostel.id"), nullable=False)
hostel = db.relationship("Hostel", backref=db.backref("hostel"), lazy=True)