尝试使用SQLAlchemy查询并比较不同表中的两列

0 投票
1 回答
882 浏览
提问于 2025-04-20 20:15

我正在尝试在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 包裹起来,现在代码就能正常工作了。

撰写回答