我正在连接两个表,并希望从一个表中选择所有列,而从另一个表中只选择一些列。我觉得我很接近,但它并没有完全返回我想要的东西。我有一个广告表和一个优惠券表,它们是一对一的关系。
我已经像这样在数据库模型上调用了一个查询:
result = Advertisement.query.join(Coupon,
Advertisement.id==Coupon.id).filter(Advertisement.date==Coupon.date,
Advertisement.id==12345).add_columns(Coupon.discount,
Coupon.expiry_date)
我想要取回的是 Advertisement 中的所有列和 Coupon 中的两个列。我的理解是 add_columns 会这样做,但我只从 Coupon 中取回这两个,而从 Advertisement 中什么也没有。如果我删除 add_columns,我会从 Advertisement 中取回所有内容,但不会从 Coupon 中取回任何内容。
我必须在类中声明表关系吗?我知道查询在 sql 中应该是什么样子,但我在这里有点不知所措。如果我提供的信息不够清楚,请告诉我,我可以尝试进一步阐述,谢谢。
最佳答案
您可以按如下方式进行:
result = session.query(Advertisement, Coupon.discount, Coupon.expiry_date).filter(
Advertisement.id==Coupon.id,
Advertisement.date==Coupon.date,
Advertisement.id==12345
)
关于python - Flask-SQLAlchemy join 是否可以从一个表中选择所有列并从另一个表中指定一些列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44422105/