[英]How to Query 4 tables with the key in the 4th table in Flask SQLAlchemy?
I have four tables with the structure as below:我有四个表,其结构如下:
class Vendors(db.Model):
id = db.Column(db.Integer, primary_key=True)
companyName = db.Column(db.String(100))
billingAddress = db.Column(db.String(100))
shippingAddress = db.Column(db.String(100))
contactPersonName = db.Column(db.String(100))
contactPersonNumber = db.Column(db.String(100))
gstNo = db.Column(db.String(100))
openingBalance = db.Column(db.BIGINT)
creditPeriod = db.Column(db.String(100))
vendorCode = db.Column(db.String(100))
vendorProducts = db.relationship('VendorsProduct', backref="vendProd")
class VendorsProduct(db.Model):
id = db.Column(db.Integer, primary_key=True)
bf = db.Column(db.Integer)
gsm = db.Column(db.Integer)
types = db.Column(db.String(100))
itemCode = db.Column(db.String(100))
vendorID = db.Column(db.String(100), db.ForeignKey('vendors.vendorCode'))
vendorInwards = db.relationship('VendorsInward', backref="vendInward")
class VendorsInward(db.Model):
id = db.Column(db.Integer, primary_key=True)
reel = db.Column(db.String(100))
deckle = db.Column(db.Integer)
weight = db.Column(db.Integer)
vendorInwardID = db.Column(
db.String(100), db.ForeignKey('vendors_product.itemCode'))
reelID = db.relationship('ReelStatusTable', backref="reelStatusTable")
class ReelStatusTable(db.Model):
id = db.Column(db.Integer, primary_key=True)
reelStatus = db.Column(db.String(100))
reelCode = db.Column(db.String(100), db.ForeignKey('vendors_inward.reel'))
In the ReelStatusTable
under the reelStatus
I have values named In Stock
.在
ReelStatusTable
下的reelStatus
我有名为In Stock
值。 I want to query in Flask-SQLAlchemy all the In Stock
entries associated with a Vendors
table.我想在 Flask-SQLAlchemy 中查询与
Vendors
表关联的所有In Stock
条目。
I tried the following code and it simply displays all the values from the reelStatus
and I cannot only query the In Stock
ones :(我尝试了以下代码,它只是显示了
reelStatus
所有值,而我不能只查询In Stock
的值:(
vendorsProductsList = db.session.query(
Vendors
).join(
VendorsProduct
).join(
VendorsInward
).join(
ReelStatusTable
).filter(
ReelStatusTable.reelStatus == "In Stock"
).all()
Please help me query the In Stock
entries.请帮我查询
In Stock
条目。
NOTE: I want to use Vendors.name
, VendorsProduct.bf
, VendorsProduct.gsm
, VendorsProduct.types
, VendorsInward.reel, VendorsInward.deckle, VendorsInward.weight
and ReelStatusTable.reelStatus
fields in my flask application注意:我想在我的烧瓶应用程序中使用
Vendors.name
、 VendorsProduct.bf
、 VendorsProduct.gsm
、 VendorsProduct.types
、 VendorsInward.reel, VendorsInward.deckle, VendorsInward.weight
和ReelStatusTable.reelStatus
字段
Thank you in Advance.先感谢您。
It worked after I tried this query !!在我尝试这个查询后它起作用了!!
vendorsProductsList = db.session.query(Vendors,
VendorsProduct,
VendorsInward,
ReelStatusTable
).filter(
ReelStatusTable.reelStatus == "In Stock"
).filter(
ReelStatusTable.reelCode == VendorsInward.reel
).filter(
VendorsInward.vendorInwardID == VendorsProduct.itemCode
).filter(
VendorsProduct.vendorID == Vendors.vendorCode
).all()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.