我需要一点帮助,将我的代码用SQLAlchemy语言表达出来,就像这样:
如何将这些查询组合在一起?
SELECT
s.agent_id,
s.property_id,
p.address_zip,
(
SELECT v.valuation
FROM property_valuations v WHERE v.zip_code = p.address_zip
ORDER BY ABS(DATEDIFF(v.as_of, s.date_sold))
LIMIT 1
) AS back_valuation,
FROM sales s
JOIN properties p ON s.property_id = p.id
内部子查询旨在从表propert_valuations
中获取最接近表sales
的销售日期的列(zip_code INT, valuation DECIMAL, as_if DATE
)的属性值。 我知道如何重写它,但完全卡在order_by
表达式上 - 我无法准备子查询以稍后传递排序成员。
目前我有以下查询:
subquery = (
session.query(PropertyValuation)
.filter(PropertyValuation.zip_code == Property.address_zip)
.order_by(func.abs(func.datediff(PropertyValuation.as_of, Sale.date_sold)))
.limit(1)
)
query = session.query(Sale).join(Sale.property_)
如何将这些查询组合在一起?
as_scalar()
被替换为scalar_subquery()
。 - Mikko Ohtamaascalar_subquery()
,我会非常感激。 - undefined