쿼리를 사용하여 데이터 관리

관련이 없는 데이터 원본 쿼리

브라우저가 비디오를 지원하지 않습니다. Microsoft Silverlight, Adobe Flash Player 또는 Internet Explorer 9를 설치하세요.

직접적인(일대일 또는 일대다) 관계가 없는 데이터 원본으로부터 정보를 추출하는 쿼리를 작성해야 하는 경우가 있습니다.

중간 테이블을 사용하여 쿼리의 데이터 원본 연결

쿼리를 실행하면 Access는 사용자가 만든 테이블 간의 관계를 사용하여 추정을 바탕으로 다른 데이터 원본 사이에 연결을 만듭니다. 쿼리에 필요한 관계가 존재하지 않는 경우 쿼리의 일환으로 테이블을 연결합니다.

여러 공급업체의 주문이 몇 건이나 발주되었는지 확인하려 한다고 가정해 보겠습니다. 공급업체 테이블은 제품 ID와 수량 정보가 담긴 구매 주문 정보 테이블에 연결되어 있지 않습니다. 그러나 구매 주문 테이블은 구매 주문 정보 테이블에 연결되어 있습니다.

사전 정의된 관계가 포함되거나 포함되지 않은 여러 개의 테이블 데이터 원본.

팁: 작성하려는 쿼리 밖에서 이 관계가 필요하다면 나중에 사용할 수 있도록 중간 관계를 만드는 것이 좋습니다. 자세한 내용은 다대다 관계 만들기를 참조하세요.

데이터베이스에 중간 테이블을 만들고 싶지 않다면 쿼리에서 구매 주문 테이블을 중간 테이블로 사용합니다. 구매 주문 테이블 왼쪽에 공급업체 테이블을 추가한 다음 연결을 만듭니다.

하나의 테이블을 사용하여 두 개의 다른 테이블을 간접적으로 연결

구매 주문 테이블은 각각 별개의 테이블인 공급업체 테이블과 구매 주문 정보 테이블을 연결합니다. 다음 조건을 충족하는 필드(예: 공급업체 테이블의 ID와 구매 주문 테이블의 공급업체 ID)를 사용하여 테이블을 연결합니다.

  • 일치하거나 호환되는 데이터 형식의 필드. 예를 들어, 텍스트 필드와 숫자 필드는 연결할 수 없습니다.

  • 각 테이블에서 일치하는 고유 레코드를 식별하는 필드. 예를 들어, 성은 고유하지 않으므로 두 개의 성 필드를 연결하지 않습니다.

  • 올바른 레코드 결과를 보장하는 필드. 예를 들어, 공급업체 ID필드를 구매 ID에 연결하면 ID가 비슷한 경우 일치하는 레코드가 반환될 수 있습니다. 그러나 공급업체 ID와 구매 ID는 관련이 없으므로 이는 의미 없는 결과가 됩니다. 그 대신 공급업체 테이블의 ID를 구매 주문 테이블의 공급업체 ID에 연결하는 것이 좋습니다. 두 필드 모두 공급업체를 식별하므로 의미 있는 결과가 반환됩니다.

단계

데이터베이스에 중간 테이블이 있는 경우, 또는 쿼리에서 중간 테이블을 사용하려는 경우 다음을 수행합니다.

  1. 쿼리에서 두 개의 연결되지 않은 테이블 사이에 중간 테이블을 추가합니다.

  2. 중간 테이블을 사용하여 필요한 연결을 만듭니다.

    연결에는 적절한 유형의 조인을 사용할 수 있지만, 앞서 설명한 조건을 충족하는 필드를 통해 연결되어야 합니다.

    중간 테이블을 사용하여 필요한 연결 만들기
  3. 쿼리를 완료합니다.

    쿼리를 만들기 위한 일반적인 단계(출력 필드 추가, 조건 추가)를 수행한 다음 쿼리를 실행하거나 저장합니다. 자세한 내용은 기본 쿼리 만들기를 참조하세요.

    참고: 결과에 중간 테이블을 포함시킬 필요는 없지만 Access가 데이터를 연결할 수 있도록 쿼리 데이터 원본에 중간 테이블이 포함되어 있어야 합니다.

더 많은 정보를 원하는 경우

기본 쿼리 만들기

여러 데이터 원본을 조인하여 쿼리 만들기

외부 조인으로 쿼리 만들기

Excel 교육

Outlook 교육

관계가 없거나 조인을 공유하지 않는 테이블 또는 다른 데이터 원본에 대해 쿼리를 실행해야 할 때가 있습니다. 이때 두 가지 옵션을 사용할 수 있습니다.

첫째, 중간 테이블을 사용합니다. 중간 테이블은 사용하려는 데이터 원본과 조인을 공유하는 테이블입니다.

둘째, 조인을 추가합니다.

먼저 중간 테이블을 사용하는 방법을 살펴보겠습니다. 이 예제 데이터베이스에서는 직원들이 매 주문마다 상태를 입력해야 합니다. 가끔씩 잊어버리고 입력하지 않는 직원도 있습니다.

우리는 다음과 같은 질문을 던지려고 합니다. “상태가 없는 주문은 무엇이며, 상태를 입력하지 않은 직원은 누구인가?”

쿼리를 보면 세 개의 테이블, 즉 직원, 주문 및 주문 정보 상태를 사용해야 하는 것을 알 수 있습니다. 각각 질문에 대한 데이터 요소를 포함하고 있기 때문입니다. “상태가 없는 주문은 무엇이며, 상태를 입력하지 않은 직원은 누구인가?”

쿼리에 해당 테이블을 추가하면 이 두 개의 테이블이 조인되지 않은 것을 볼 수 있습니다. 하지만 괜찮습니다. 조인을 추가하면 되니까요.

그래서 ID 필드를 조인하고 쿼리를 실행합니다. 그런데 결과가 나오지 않는군요.

이번에는 제대로 테이블 사이의 관계를 살펴보겠습니다.

자세히 보니 관계 사이에 일종의 망이 있는 것을 알 수 있습니다. 예를 들어 직원-주문, 주문-주문 정보, 주문 정보-주문 정보 상태가 있습니다.

주문과 주문 정보 상태는 관계가 없지만, 주문 정보는 이 두 테이블과 모두 관계가 있습니다. 그렇다면 주문 정보가 중간 테이블이 되는 것입니다.

여기서 규칙을 하나 발견할 수 있습니다. 즉, 중간 테이블이 데이터 원본에 포함되어 있다면 관계가 없는 테이블을 사용하여 쿼리를 실행하여 유효한 결과를 얻을 수 있다는 것입니다.

결과에 중간 테이블을 포함할 필요는 없지만 쿼리 데이터 원본에는 중간 테이블이 포함되어 있어야 합니다.

이제 쿼리에 주문 정보를 추가하고, 필드를 동일하게 두고 쿼리를 실행합니다.

빈 값을 필터링하면 제대로 된 결과를 볼 수 있습니다.

이제 쿼리에 조인을 추가해 보겠습니다. 이를 위해서는 몇 가지 규칙을 염두에 두고 있어야 합니다.

첫째, 조인하려는 테이블이나 쿼리에는 일치하거나 호환되는 데이터 형식을 갖는 필드가 있어야 합니다.

예를 들어, 숫자와 통화는 호환되지만, 숫자와 텍스트는 호환되지 않습니다.

둘째, 조인을 만들면 해당 조인은 쿼리에만 존재합니다. 조인은 테이블 관계가 아니기 때문입니다.

셋째, 의미 있는 결과가 나와야 합니다. 조인으로 인해 주문 및 회사 차량 데이터가 결과로 반환된다면 처음부터 다시 시작해야 합니다.

어떤 고객이 어떤 제품을 주문했는지 확인해 보려 한다고 가정해 보겠습니다.

새 쿼리에 고객, 주문, 주문 정보를 추가합니다. 그리고 조인을 추가합니다. 고객 테이블의 고객 ID를 주문 테이블의 일치하는 필드로 끌어다 놓습니다.

여기에 조인 선이 생겼습니다. 여기서 또 다른 규칙을 확인할 수 있습니다. Access는 사용자가 끌어다 놓는 필드를 새 조인 왼쪽에 배치합니다. 변경하고 싶다면 조인 선을 선택하고 삭제 키를 누른 다음 다시 시작합니다.

이제 쿼리를 작성할 수 있습니다. 고객의 성과 이름을 추가하고 주문 정보의 제품 ID, 주문 ID, 수량, 단가를 추가한 다음

쿼리를 실행하면 데이터를 확인할 수 있습니다.

지금까지 관계가 없는 데이터 원본에 대해 쿼리를 실행하려고 할 때 중간 테이블을 사용하거나 조인을 사용하는 방법에 대해 알아보았습니다.

Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×