> 데이터 베이스 > MySQL 튜토리얼 > Django의 ORM LEFT JOIN을 사용하여 자원 봉사자가 없는 부서를 찾는 방법은 무엇입니까?

Django의 ORM LEFT JOIN을 사용하여 자원 봉사자가 없는 부서를 찾는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-31 03:42:17
원래의
139명이 탐색했습니다.

How to Find Departments with No Volunteers Using Django's ORM LEFT JOIN?

LEFT JOIN Django ORM

ORM을 사용하여 자원 봉사자가 없는 부서 쿼리

에서 Django ORM(객체 관계형 매핑) 프레임워크를 사용할 수 있습니다. LEFT JOIN 연산을 사용하면 테이블 중 하나에 일치하는 행이 없더라도 여러 테이블에서 데이터를 검색할 수 있습니다.

할당된 자원 봉사자가 없는 부서를 쿼리하려면 다음 접근 방식을 사용할 수 있습니다.

from django.db.models import OuterRef, Subquery

qs = Department.objects.filter(
    departmentvolunteer__isnull=OuterRef('pk')
).values_list('name', flat=True)
로그인 후 복사

설명:

  • The OuterRef 클래스는 현재 모델 인스턴스의 기본 키를 나타냅니다. 이 경우 OuterRef('pk')는 Department 모델의 기본 키를 참조합니다.
  • Subquery 클래스는 Departmentvolunteer 테이블을 나타내는 하위 쿼리를 생성하는 데 사용됩니다. isnull 필터는 Departmentvolunteer 테이블에 각 부서에 대해 일치하는 행이 있는지 확인합니다.
  • 필터 방법은 Departmentvolunteer 테이블에 일치하는 행이 있는 부서를 필터링하는 데 사용됩니다. 그런 다음 value_list 메소드를 사용하여 일치하는 부서의 이름 필드만 검색합니다.

이 접근 방식을 사용하면 모델 간의 다중 값 관계를 확장하고 다음 중 하나에 일치하는 항목이 없는 경우에도 데이터를 검색할 수 있습니다. 테이블.

위 내용은 Django의 ORM LEFT JOIN을 사용하여 자원 봉사자가 없는 부서를 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿