我如何查询 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)
我正在尝试查询两个 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)