尝试使用SQLAlchemy查询并比较不同表中的两列
我正在尝试在SQLAlchemy中比较两个不同表中的两个值,使用的是过滤查询:
response = db.session.query(Building, BuildingTypes)\
.join(BuildingTypes)\
.filter(x <= (Building.x+(BuildingTypes.width/2)))\
.first()
我的问题是,无论结果是否应该是None,我总是能收到响应。我是不是做错了什么?
以下是类的定义:
class BuildingTypes(db.Model):
__tablename__ = 'buildingTypes'
id = db.Column(db.Integer, primary_key=True)
width = db.Column(db.Integer)
height = db.Column(db.Integer)
title = db.Column(db.Text)
class Building(db.Model):
__tablename__ = 'buildings'
id = db.Column(db.Integer, primary_key=True)
x = db.Column(db.Integer)
y = db.Column(db.Integer)
typeID = db.Column(db.Integer, db.ForeignKey('buildingTypes.id'))
buildingTypes = db.relationship("BuildingTypes")
1 个回答
0
问题在于,在上面的代码之前,x 是通过一个 request.form 的语句获取的。因为这个原因(我猜),它没有被当作整数来处理。所以解决办法就是用 int(x) 把 x 包裹起来,现在代码就能正常工作了。