방법
직접적인(일대일 또는 일대다) 관계가 없는 데이터 원본으로부터 정보를 추출하는 쿼리를 작성해야 하는 경우가 있습니다.
중간 테이블을 사용하여 쿼리의 데이터 원본 연결
쿼리를 실행하면 Access는 사용자가 만든 테이블 간의 관계를 사용하여 추정을 바탕으로 다른 데이터 원본 사이에 연결을 만듭니다. 쿼리에 필요한 관계가 존재하지 않는 경우 쿼리의 일환으로 테이블을 연결합니다.
여러 공급업체의 주문이 몇 건이나 발주되었는지 확인하려 한다고 가정해 보겠습니다. 공급업체 테이블은 제품 ID와 수량 정보가 담긴 구매 주문 정보 테이블에 연결되어 있지 않습니다. 그러나 구매 주문 테이블은 구매 주문 정보 테이블에 연결되어 있습니다.
팁: 작성하려는 쿼리 밖에서 이 관계가 필요하다면 나중에 사용할 수 있도록 중간 관계를 만드는 것이 좋습니다. 자세한 내용은 다대다 관계 만들기를 참조하세요.
데이터베이스에 중간 테이블을 만들고 싶지 않다면 쿼리에서 구매 주문 테이블을 중간 테이블로 사용합니다. 구매 주문 테이블 왼쪽에 공급업체 테이블을 추가한 다음 연결을 만듭니다.
구매 주문 테이블은 각각 별개의 테이블인 공급업체 테이블과 구매 주문 정보 테이블을 연결합니다. 다음 조건을 충족하는 필드(예: 공급업체 테이블의 ID와 구매 주문 테이블의 공급업체 ID)를 사용하여 테이블을 연결합니다.
-
일치하거나 호환되는 데이터 형식의 필드. 예를 들어, 텍스트 필드와 숫자 필드는 연결할 수 없습니다.
-
각 테이블에서 일치하는 고유 레코드를 식별하는 필드. 예를 들어, 성은 고유하지 않으므로 두 개의 성 필드를 연결하지 않습니다.
-
필드는 올바른 레코드 결과를 보장합니다. 예를 들어 공급업체 ID를 구매 ID에 연결하는 경우 ID가 비슷한 경우 일부 일치 항목을 가져올 수 있습니다. 그러나 공급업체 ID는 구매 ID와 아무런 관련이 없기 때문에 결과는 의미가 없습니다. 공급업체 테이블의 ID를 구매 주문 테이블의 공급자 ID에 연결하는 것이 좋습니다. 두 필드 모두 공급자를 식별하기 때문에 반환된 레코드가 적합합니다.
단계
데이터베이스에 중간 테이블이 있는 경우, 또는 쿼리에서 중간 테이블을 사용하려는 경우 다음을 수행합니다.
-
쿼리에서 두 개의 연결되지 않은 테이블 사이에 중간 테이블을 추가합니다.
-
중간 테이블을 사용하여 필요한 연결을 만듭니다.
연결에는 적절한 유형의 조인을 사용할 수 있지만, 앞서 설명한 조건을 충족하는 필드를 통해 연결되어야 합니다.
-
쿼리를 완료합니다.
쿼리를 만들기 위한 일반적인 단계(출력 필드 추가, 조건 추가)를 수행한 다음 쿼리를 실행하거나 저장합니다. 자세한 내용은 기본 쿼리 만들기를 참조하세요.
참고: 결과에 중간 테이블을 포함할 필요가 없습니다. Access에서 데이터를 연결할 수 있도록 쿼리의 데이터 원본에 속하기만 하면 됩니다.