烧瓶 - 塞拉尔奇米(Blask-Sqlalchemy)是否有可能从一个表中选择所有列,并从另一个表中指定一些列



我正在做两个表的联接,并想从一个和仅从另一个表中选择所有列。我觉得自己很亲密,但这并不是我想要的东西。我有一个广告表和一张优惠券表,那里有1比1的关系。

我在DB模型上调查了一个查询:

result = Advertisement.query.join(Coupon, 
Advertisement.id==Coupon.id).filter(Advertisement.date==Coupon.date, 
Advertisement.id==12345).add_columns(Coupon.discount, 
Coupon.expiry_date)

我想回来的是广告中的所有列,而两条则是优惠券。我的理解是add_columns会这样做,但是我只从优惠券中拿回两个,而从广告中也没有。如果我删除add_columns,我会从广告中恢复全部,但没有优惠券。

我必须在班上声明桌子关系吗?我知道SQL中的查询应该是什么样的,但是我在这里有些损失。如果我提供的信息还不够清楚,请告诉我,我可以尝试进一步详细说明。

您可以按以下方式进行:

result = session.query(Advertisement, Coupon.discount, Coupon.expiry_date).filter(
   Advertisement.id==Coupon.id, 
   Advertisement.date==Coupon.date, 
   Advertisement.id==12345
)

最新更新