ArcGIS를 사용하면 한 테이블의 레코드를 키라고 하는 공통 필드를 통해 다른 테이블의 레코드와 연결할 수 있습니다. 맵에서 테이블을 일시적으로 조인하거나 연결하거나 지리적 데이터베이스에서 더 영구적인 연결을 유지하는 관계 클래스를 만드는 등 여러 가지 방법으로 이러한 연결을 만들 수 있습니다. 예를 들어 구획 ID 필드를 공유하므로 구획 소유권 정보를 구획 도면층과 연결할 수 있습니다. ModelAlias를 사용하는 조인을 수행할 때on 키워드 인수를 사용하여 조인 조건을 지정해야 합니다. 이 경우 상위 범주와 범주에 합류합니다. 그것은 우리의 작은 예제에 대해서도 이미 지저분해지고 실제 회사 구현에는 현실적이지 않습니다. 세상(및 데이터)은 관계와 더 잘 작동합니다. 어떤 재료가 어떤 레시피에 있는지 보고 싶다고 가정해 봅시다. 이 작업을 여러 단계로 수행하겠습니다.

다음 예제에서는 여러 쿼리를 실행 합니다. 실행 중인 쿼리 수를 잘 모르는 경우 콘솔에 모든 쿼리를 기록하는 다음 코드를 추가할 수 있습니다. Peewee는 테이블을 통해 다대다에서 관계를 만들려면 참조되는 모델의 기본 키를 알아야 합니다. 다음 예제에서는 사용자 및 ActivityLog 간에 명시적 외래 키가 없지만 ActivityLog.object_id 필드와 User.id 간에 암시적인 관계가 있습니다. 특정 필드에 참여하는 대신 표현식을 사용하여 조인합니다. 여러 조인 및 조인 컨텍스트 전환과 관련된 보다 복잡한 예제를 보려면 Huey의 모든 트윗과 즐겨찾기를 찾은 횟수를 찾아보겠습니다. 이렇게 하려면 두 개의 조인을 수행해야 하며 집계 함수를 사용하여 즐겨찾는 개수를 계산합니다. 여기서는 여러 가지 관계를 맺고 있기 때문에 총 3개의 테이블을 조인하고 있습니다. 즉, 두 개의 조인: 첫 번째 테이블과 연결 테이블 사이, 그리고 해당 쿼리의 결과에서 관계의 다른 끝에 다른 조인.

이 예제에서는 두 개의 왼쪽 조인이 있습니다. 각 조인은 지금까지 가지고 있는 결과 집합인 두 데이터 집합과 조인중인 새 테이블 사이에서 작동합니다. 우리는 여전히 재료에 일치하는 기록이없는 경우에도 레시피 / recipe_ingredients조인의 기록을 갖고 싶어하기 때문에, 여기에 두 번째 조인은 외부 조인이 될 필요가있다. 위의 루프에 큰 문제가 있습니다: 그것은 tweet.user 외국 키를 조회 하는 모든 짹짹에 대 한 추가 쿼리를 실행. 우리의 작은 테이블에 대 한 성능 페널티는 분명 하지 않습니다., 하지만 우리는 지연 증가 행의 수를 찾을 것 이다. 관계가 없다면 모든 데이터를 그림과 같은 하나의 거대한 테이블에 보관해야 합니다.