1
다른 테이블의 엔터티에 대한 여러 개정판이 포함 된 단일 테이블이 있습니다 (작업). 따라서 각 TaskRevision 행에는 고유 한 자동 증가 ID와 작업 ID에 대한 참조가 있습니다.SQLAlchemy에서 최신 개체를 얻는 방법
모든 작업의 최신 개정판은 어떻게 찾을 수 있습니까? 나는 시도했다 :
session.query(TaskRevision.id).order_by(TaskRevision.task_id).filter(TaskRevision.id==func.max(TaskRevision.id)).all()
session.query(TaskRevision.id).group_by(TaskRevision.task_id, TaskRevision.id).having(TaskRevision.id==func.max(TaskRevision.id))
고마워요! 그리고 Task.latest_revision_id를 사용하면 그것에 대한 조인을 수행 할 수 있습니까? – timbo
@timbo 예전의 경우와 같이 하위 쿼리에 가입하는 것보다 훨씬 간단합니다. – univerio
나는 latest_revision_id 컬럼을 추가하는 것이 또 다른 질문을 던지기 때문에이 값의 일관성을 유지하는 방법이라고 생각한다. 몇 가지 생각이 들자면, 동일한 수정 (예 : Session) 내에서 새 수정 버전을 만들고이 열을 업데이트해야 * 불일치 가능성이 없어야합니다. – timbo