我希望一切都好。首先,我很抱歉我的 SQL 不是很好。
我有一个如下所示的原始 SQL
select a.appointmentId, a.patientId, r.MaxTime from (
select appointmentid, patientid, max(apptDate) as MaxTime
from appointment
where facilityid=95
group by patientid
) r
inner join
Appointment a on
a.patientid = r.patientid and
a.apptDate = r.MaxTime
我在我的代码中使用了 SQLAlchemy 的声明式风格,这就是我的查询的样子
appt_query = alchemy_session.query(Appointment.appointmentId, Appointment.patientId, func.max(Appointment.apptDate).label('maxTime')).filter(
Appointment.facilityId == 95,
).group_by(Appointment.patientId).subquery()
appointments = alchemy_session.query(Appointment.appointmentId, Appointment.patientId, appt_query.c.maxTime).outerjoin(
appt_query, and_(
Appointment.patientId == appt_query.c.patientId,
Appointment.apptDate == appt_query.c.maxTime
)
)
但是当我这样做时
打印约会
不幸的是,它没有产生我想要的 SQL。我知道我对 SQL 的理解存在缺陷,因此任何关于此的指针都会非常有帮助。感谢您的时间和帮助。