django select 변경 정보related의join 연결 방식 (inner join/left join)
942 단어 django
django는 select 를 사용할 수 있습니다related는 외부 키 대상을 미리 불러오지만,null=True가 지정되지 않은 경우,selectrelated는 inner join 연결 조회를 사용합니다. 이렇게 하면 데이터가 부족할 수 있습니다. (키 대상 데이터가 존재하지 않는 경우)
eg:
author = models.ForeignKey(Author)
queryset = Book.objects.filter(*args).select_related('author')
print(queryset.query)
>>
SELECT * FROM Book INNER JOIN Author ON ..
외부 키를 null=True로 설정하면 selectrelated는 left outer join 플러그인 조회를 사용합니다
eg:
author = models.ForeignKey(Author, null=True)
queryset = Book.objects.filter(*args).select_related('author')
print(queryset.query)
>>
SELECT * FROM Book LEFT OUT JOIN Author ON ..
만약 외키 대상이 반드시 써야 하고 null이 될 수 없으며 실제 외키 데이터가 삭제되어 일치하지 않을 경우 읽기와 쓰기는 각각 다른 모델을 사용할 수 있으며 결합 기능도 사용할 수 있다
또한 원생 sql를 실행하여leftjoin 연결eg:OrderIterm을 실행할 수 있습니다.objects.raw(sql_with_left_join)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.