다음과 같은 쿼리가 있습니다 : Foo.objects.extra(select={'extra_column':'SELECT ...'})
및 extra_column
에 필터링하고 싶지만 필터에서이 별칭을 가져올 수 없습니다. 나는 annotate()
을 사용하려고 생각하고 있지만, annotate()
은 select
절에서 사용할 수 있습니다. 모든 튜토리얼은 SUM
등에 있습니다. 나는 또한 HAVING
절을 시도했지만 장고는 을 extra()
에 지원하지 않습니다.Django : 여분의 열을 필터링하는 방법은 무엇입니까?
모든 의견을 보내 주시면 감사하겠습니다.
편집 :
장고 1.6, MySQL의
좀 복잡한 조건의 쿼리입니다, 그래서 서브 쿼리를 작성하는 extra()
를 사용해야합니다. 하지만 filter()
을 사용하여 하위 쿼리의 별칭에 액세스 할 수는 없습니다. 나중에 filter()
에서 액세스 할 수있는 annotate()
으로 바뀌었지만 SUM, MAX, MIN, AVG
에서만 작동하는 것처럼 보였으므로 내 맞춤 SELECT
하위 쿼리에서 사용할 수 없습니다.
나는 비슷한 질문을 여기에서 읽었다 : Django ORM: Filter by extra attribute. MySQL에서 별칭에 대한 쿼리를 수행 할 때 HAVING
절을 사용해야한다고 말했습니다.
이 문제가 PostgreSQL과 같은 다른 SQL 백엔드 또는 더 높은 버전의 장고에 있는지 궁금합니다. MySQL과 Django1.6에서이 질문에 대한 기본 제공 솔루션이 없을 수도 있습니까?
당신은 당신이 여분의 쿼리를 수행하려고 무엇을 설명 할 수 있습니까? 조인이나 간단한 주석을 사용하여 해결할 수도 있습니다. 또한 장고 버전을 사용하고 있습니까? – Blackeagle52
@ Blackeagle52 업데이트 됨. –