我正在做两个表的联接,并想从一个和仅从另一个表中选择所有列。我觉得自己很亲密,但这并不是我想要的东西。我有一个广告表和一张优惠券表,那里有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
)