私はすべてがうまくいくことを願っています。まずは、私のSQLがうまくいかないことは残念です。raw SQLをSQLAlchemyコードに完全に変換する際に助けてください(私は試してみましたが、まだありません)
私は私のコードで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
)
)
が、私のように見える方法ですよ
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
を次のようになります。生のSQLをしましたやる
印刷予定
それは残念ながらSQL tを生成していないです私が欲しい帽子。私はSQLの私の理解に時間があることを知っているので、この上の任意のポインターは本当に役立つでしょう。あなたの時間と助けてくれてありがとう。
:それはうまく
sqlalchemy.orm.aliased
によって行われます。生成されるSQLは何ですか? – sayapMetaDataオブジェクトにアクセスできる場合、metadata.bind.echo = Trueは、sqlalchemyが使用しているSQLを表示します。 – timbo