python - Flask-SQLAlchemy join 是否可以从一个表中选择所有列并从另一个表中指定一些列?

标签 python sqlalchemy flask-sqlalchemy

我正在连接两个表,并希望从一个表中选择所有列,而从另一个表中只选择一些列。我觉得我很接近,但它并没有完全返回我想要的东西。我有一个广告表和一个优惠券表,它们是一对一的关系。

我已经像这样在数据库模型上调用了一个查询:

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/

相关文章:

python - 指定枚举字段类型的排序顺序

python - 数据库和Python

python - SQLAlchemy 中的 GroupBy 和 Sum?

python - AttributeError:模块 'cv2.cv2' 没有属性 'TrackerCSRT_create'

python - DSA 验证计算

python - 如何将 Scikit-learn 数据集转换为 Pandas 数据集

python - 在 Django 提供的 IFrame 中显示 PDF 时,IE 8 崩溃

python - Sqlalchemy 不会为 MSSQL GETDATE() 服务器默认发出正确的 SQL

python - 从 SQLAlchemy InstrumentedAttribute 中提取一个 weekday() (列类型是 datetime)

python - 如何在 SQLAlchemy 中的 JSON PostgreSQL 列的嵌套键上创建索引?