1
Django ORM을 사용하여이 간단한 SQL을 어떻게 표현할 수 있습니까?Django 자체 참조 중첩 된 QuerySets
SELECT * FROM alerts a1 WHERE timestamp = (
SELECT MAX(timestamp) FROM alerts a2
WHERE a1.category = a2.category
AND a1.type = a2.type
)
이 경우에 경고 테이블은 각 카테고리 태그, 발생 가능한 모든 경고의 역사 - 쿼리는 각 카테고리의 최신 경고를 반환합니다.
pk 사용에 대한 좋은 아이디어. – Evgeny
실제로 중첩 된 선택이있는 단일 쿼리 만 수행합니다. 내부 선택은 그룹화 된 카테고리 및 유형에 대한 집계이며, 이는 OP에서 요청한 것과 정확히 일치합니다. SELECT * 경고 FROM WHERE ( 을 경고 U0 U0 BY GROUP. "카테고리", U0. "하위"FROM maxid AS SELECT MAX (U0.id)) 아이디 IN – Evgeny