Applies ToMicrosoft 365용 Access Access 2024 Access 2021 Access 2019 Access 2016

Access 쿼리에 여러 데이터 원본을 포함하는 경우 조인을 사용하여 데이터 원본이 서로 관련된 방식에 따라 보려는 레코드를 제한합니다. 또한 조인을 사용하여 두 데이터 원본의 레코드를 결합하여 원본의 각 레코드 쌍이 쿼리 결과에서 하나의 레코드가 되도록 합니다.

이 문서에서는 다양한 유형의 조인에 대해 설명하고 쿼리에서 조인을 사용하는 방법을 보여 줍니다. 기본적으로 쿼리에서 사용하는 두 데이터 원본 간에 관계가 이미 있는 경우 조인이 자동으로 만들어집니다. 서로 명확하게 일치하는 필드가 있는 경우에도 조인이 만들어집니다. 자동으로 생성된 조인을 삭제할 수 있습니다. 이 문서에서는 테이블 관계를 만드는 방법을 포함하여 테이블 관계에 대한 기본 정보를 제공합니다.

참고: 테이블을 조인하는 것과 동일한 방식으로 쿼리를 조인할 수 있으며 둘 다 조인할 수도 있습니다.

이 문서의 내용

개요

데이터베이스는 서로 논리적 관계를 갖는 데이터 테이블의 컬렉션입니다. 관계를 사용하여 공통된 필드별로 테이블을 연결합니다. 테이블은 모든 수의 관계에 속할 수 있지만 각 관계에는 항상 정확히 두 개의 테이블이 있습니다. 쿼리에서 관계는 조인으로 표시됩니다.

쿼리에 테이블을 추가하면 Access 테이블 간에 정의된 관계를 기반으로 하는 조인을 만듭니다. 조인이 이미 정의된 관계를 나타내지 않더라도 쿼리에서 수동으로 조인을 만들 수 있습니다. 다른 쿼리(테이블 대신 또는 테이블 외)를 쿼리의 데이터 원본으로 사용하는 경우 원본 쿼리와 해당 쿼리와 데이터 원본으로 사용하는 테이블 간에 조인을 만들 수 있습니다.

조인은 쿼리 작업에 포함하기 위해 데이터가 일치해야 하는 규칙을 설정한다는 측면에서 쿼리 조건과 유사하게 작동합니다. 조건과 달리 조인은 조인 조건을 충족하는 각 행 쌍을 레코드 집합에 결합하여 단일 행을 구성하도록 지정합니다.

내부 조인, 외부 조인, 교차 조인 및 같지 않은 조인의 네 가지 기본 유형의 조인이 있습니다. 이 문서에서는 사용할 수 있는 각 조인 유형, 각 형식을 사용하는 이유 및 조인을 만드는 방법을 살펴봅니다.

조인은 테이블과의 관계를 쿼리하는 것입니다. 두 원본의 데이터를 공통 데이터 값에 따라 결합하는 방법을 나타냅니다. 다음은 대화 상자에서 조인의 속성이 열려 있는 쿼리 디자인 뷰의 조인 그림입니다.

조인 속성 대화 상자

테이블 사이의 이 줄은 조인을 나타냅니다. 조인을 두 번 클릭하여 조인 속성 대화 상자(그림 참조)를 열고 조인을 검토하거나 변경합니다.

조인은 방향이 있는 경우도 있습니다. 대화 상자의 이 영역에는 조인에 있는 테이블과 테이블을 조인하는 데 사용되는 필드가 표시됩니다.

이 영역에는 조인 유형이 결정됩니다. 옵션 1은 내부 조인이고 2는 왼쪽 외부 조인이고 3은 오른쪽 외부 조인입니다.

두 테이블의 필드를 모두 사용할 수 있으며 지정된 작업과 관련된 데이터가 각각에서 표시됩니다. 내부 조인에는 다른 데이터가 포함되지 않습니다. 외부 조인에서는 한 테이블의 관련 없는 레코드도 쿼리 결과에 포함됩니다.

맨 위로 이동

조인 유형

내부 조인, 외부 조인, 교차 조인 및 같지 않은 조인의 네 가지 기본 유형의 조인이 있습니다. 교차 조인과 같지 않은 조인은 고급 조인 유형이며 거의 사용되지 않지만 조인의 작동 방식을 완전히 이해하려면 이러한 조인에 대해 알아야 합니다.

내부 조인: 두 테이블의 관련 데이터만 결합됨

내부 조인은 관련 테이블에 해당 데이터가 있는 경우 Access에 테이블의 데이터만 포함하고 그 반대의 경우도 마찬가지입니다. 대부분의 경우 내부 조인을 사용합니다. 조인을 만들고 조인의 종류를 지정하지 않으면 Access에서 내부 조인을 원한다고 가정합니다. 내부 조인은 공유 값에 따라 두 원본의 데이터를 결합할 수 있으므로 전체 그림이 있을 때만 데이터를 볼 수 있기 때문에 유용합니다.

외부 조인: 모든 관련 데이터를 올바르게 결합하고 한 테이블의 나머지 모든 레코드를 결합합니다.

외부 조인은 내부 조인과 같지만 테이블 중 하나에서 나머지 행을 추가합니다. 외부 조인은 방향입니다. 왼쪽 외부 조인에는 왼쪽 테이블의 모든 레코드(조인의 첫 번째 테이블)가 포함되고 오른쪽 외부 조인에는 오른쪽 테이블의 모든 레코드(조인의 두 번째 테이블)가 포함됩니다.

전체 외부 조인: 가능한 경우 결합된 모든 데이터

일부 시스템에서는 외부 조인이 두 테이블의 모든 행을 포함할 수 있으며, 행이 해당할 때 결합됩니다. 이를 전체 외부 조인이라고 하며 Access는 명시적으로 지원하지 않습니다. 그러나 교차 조인 및 조건을 사용하여 동일한 효과를 얻을 수 있습니다.

교차 조인: 가능한 모든 방법을 결합한 모든 데이터

대부분의 경우 교차 조인은 쿼리에 두 테이블을 추가한 다음 조인을 잊어버리는 부작용입니다. Access는 이를 해석하여 한 테이블의 모든 레코드를 다른 테이블의 모든 레코드와 결합하고 가능한 모든 레코드 조합을 보려는 것을 의미합니다. 데이터를 결합할 수 없으므로 이러한 종류의 조인은 유용한 결과를 거의 생성하지 않습니다. 그러나 크로스 조인이 필요한 것일 때 몇 가지 경우가 있습니다.

같지 않은 조인: 일반 조인과 비슷하지만 다른 비교를 사용하여 행 결합

같지 않은 조인은 등호(=) 이외의 연산자를 사용하여 값을 비교하고 데이터를 결합할지 여부와 방법을 결정합니다. 같지 않은 조인은 명시적으로 지원되지 않지만 교차 조인 및 조건을 사용하여 동일한 효과를 얻을 수 있습니다.

조인된 두 테이블에 공통 값이 있는 행 표시

조인된 필드에 일치하는 값이 있는 행만 표시하려면 내부 조인을 사용합니다. 액세스는 자동으로 내부 조인을 만듭니다.

내부 조인은 가장 일반적인 조인 유형입니다. 조인된 테이블 중 하나의 행이 조인된 필드의 데이터를 기반으로 다른 테이블의 행에 해당한다는 쿼리를 알려줍니다. 내부 조인이 있는 쿼리가 실행되면 조인된 두 테이블에 공통 값이 있는 행만 쿼리 작업에 포함됩니다.

내부 조인을 사용할 어떻게 할까요? 있나요?

대부분의 경우 내부 조인을 사용하기 위해 아무 것도 할 필요가 없습니다. 쿼리에 추가하는 테이블에 이미 관계가 있는 경우 테이블을 추가할 때 Access는 각 관련 테이블 쌍 간에 내부 조인을 자동으로 만듭니다. 참조 무결성을(를) 적용하면 조인 선 위에 일대다 관계의 “일”에 해당하는 쪽에 “1”이 표시되고 “다"에 해당하는 쪽에 무한대 기호()가 표시됩니다.

관계를 만들지 않은 경우에도 쿼리에 두 개의 테이블을 추가하고 해당 테이블에 각각 동일하거나 호환되는 데이터 형식의 필드가 있고 조인 필드 중 하나가 기본 키 경우 Access에서 자동으로 내부 조인을 만듭니다. 참조 무결성이 적용되지 않으므로 이 경우 "one" 및 "many" 기호가 표시되지 않습니다.

쿼리에 쿼리를 추가하고 해당 쿼리 간에 관계를 만들지 않은 경우 Access는 해당 쿼리 간 또는 쿼리와 테이블 간에 내부 조인을 자동으로 만들지 않습니다. 일반적으로 직접 만들어야 합니다. 한 데이터 원본에서 다른 데이터 원본의 필드로 필드를 끌어 내부 조인을 만듭니다. 두 필드 사이에 선이 표시되면 조인이 만들어진 것입니다.

내부 조인에 대한 SQL 구문

내부 조인은 아래와 같이 FROM 절의 SQL에 지정됩니다.

FROM table1 INNER JOIN table2 ON table1.field1 compare table2.field2

INNER JOIN 연산은 다음과 같이 구성됩니다.

구성 요소

설명

table1, table2

레코드를 결합할 테이블의 이름입니다.

field1, field2

조인되는 필드의 이름입니다. 이러한 필드는 숫자 값이 아닌 경우 데이터 형식이 같아야 하고 동일한 종류의 데이터를 포함해야 하지만 이름은 달라도 됩니다.

비교

관계형 비교 연산자("=", "<", ">", "<=", ">=" 또는 "<>")입니다.

내부 조인 구문에 대한 자세한 내용은 INNER JOIN 작업 항목을 참조하세요.

맨 위로 이동

한 테이블의 모든 행과 다른 테이블의 해당 행 표시

외부 조인은 조인의 양쪽에 있는 일부 행이 정확히 일치하지만 쿼리에 한 테이블의 모든 행과 조인 양쪽에서 공통 값을 공유하는 다른 테이블의 행도 포함해야 한다는 쿼리를 알려줍니다.

외부 조인은 왼쪽 외부 조인이거나 오른쪽 외부 조인일 수 있습니다. 왼쪽 외부 조인에서 쿼리에는 SQL 문 FROM 절의 첫 번째 테이블의 모든 행과 조인 필드에 두 테이블에 공통된 값이 포함된 다른 테이블의 행만 포함됩니다. 오른쪽 외부 조인에서 쿼리에는 SQL 문 FROM 절에 있는 두 번째 테이블의 모든 행과 조인 필드에 두 테이블에 공통된 값이 포함된 다른 테이블의 행만 포함됩니다.

참고: 조인을 두 번 클릭한 다음 조인 속성 대화 상자를 확인하여 지정된 조인의 왼쪽 테이블이나 오른쪽 테이블이 무엇인지 쉽게 알 수 있습니다. SQL 보기로 전환한 다음 FROM 절을 검사할 수도 있습니다.

외부 조인의 한쪽에 있는 일부 행에는 다른 테이블의 해당 행이 없으므로 행이 일치하지 않을 때 다른 테이블의 쿼리 결과에 반환된 필드 중 일부는 비어 있습니다.

외부 조인을 사용할 어떻게 할까요? 있나요?

기존 내부 조인을 수정하여 외부 조인을 만듭니다. 내부 조인이 없으면 새로 만든 다음 외부 조인으로 변경합니다.

내부 조인을 외부 조인으로 변경

  1. 쿼리 디자인 보기에서 변경할 조인을 두 번 클릭합니다.

    조인 속성 대화 상자가 나타납니다.

  2. 조인 속성 대화 상자에서 옵션 2 및 옵션 3 옆에 나열된 선택 항목을 확인 합니다.

  3. 사용할 옵션을 클릭한 다음 확인을 클릭합니다.

  4. Access는 조인을 표시하고 모든 행이 데이터 원본에 포함되는 데이터 원본을 가리키는 화살표를 표시합니다. 여기서 조인 조건을 충족하는 행만 포함됩니다.

모호한 외부 조인

LEFT JOIN 및 INNER JOIN이 포함된 쿼리를 만드는 경우 Access에서 먼저 수행할 조인 작업을 결정하지 못할 수 있습니다. 왼쪽 조인 또는 내부 조인이 먼저 수행되는지 여부에 따라 결과가 다르므로 Access에 오류 메시지가 표시됩니다.

이 오류를 해결하려면 먼저 수행할 조인이 명확하도록 쿼리를 수정해야 합니다.

외부 조인에 대한 SQL 구문

외부 조인은 아래와 같이 FROM 절의 SQL에 지정됩니다.

FROM table1 [ LEFT | RIGHT ] JOIN table2ON table1.field1 compare table2.field2

LEFT JOIN 및 RIGHT JOIN 연산은 다음과 같이 구성됩니다.

구성 요소

설명

table1, table2

레코드를 결합할 테이블의 이름입니다.

field1, field2

조인되는 필드의 이름입니다. 이러한 필드는 데이터 형식이 같아야 하고 동일한 종류의 데이터를 포함해야 하지만 이름은 달라도 됩니다.

비교

관계형 비교 연산자("=", "<", ">", "<=", ">=" 또는 "<>")입니다.

외부 조인 구문에 대한 자세한 내용은 LEFT JOIN, RIGHT JOIN Operations 항목을 참조하세요.

맨 위로 이동

두 테이블의 모든 행을 표시하고 공통 값이 있는 위치에 조인합니다.

두 테이블의 모든 행을 표시하고 공통 값에 따라 조인하려는 경우 전체 외부 조인을 사용합니다. Access는 전체 외부 조인을 명시적으로 지원하지 않지만 공용 구조체 쿼리를 사용하여 동일한 효과를 얻을 수 있습니다. 다음 절차에서는 이 작업을 수행하는 방법을 설명하지만 공용 구조체 쿼리에 대한 자세한 내용은 참조 섹션을 참조하세요 .

공용 구조체 쿼리를 사용하여 전체 외부 조인을 수행하려면 다음을 수행합니다.

  1. 전체 외부 조인에 사용할 필드에 왼쪽 외부 조인이 있는 쿼리를 만듭니다.

  2. 탭의 보기 그룹에서 보기를 클릭한 다음 SQL 보기를 클릭합니다.

  3. CTRL+C를 눌러 SQL 코드를 복사합니다.

  4. FROM 절의 끝에 있는 세미콜론을 삭제한 다음 Enter 키를 누릅니다.

  5. UNION을 입력하고 Enter 키를 누릅니다.

    참고: 공용 구조체 쿼리를 사용하여 전체 외부 조인을 수행하는 경우 ALL 키워드(keyword) 사용하지 마세요.

  6. Ctrl+V를 눌러 3단계에서 복사한 SQL 코드를 붙여넣습니다.

  7. 붙여넣은 코드에서 LEFT JOINRIGHT JOIN으로 변경합니다.

  8. 두 번째 FROM 절 끝에 있는 세미콜론을 삭제한 다음 Enter 키를 누릅니다.

  9. FROM 절(왼쪽 테이블)에 나열된 첫 번째 테이블에서 조인 필드의 값이 NULL임을 지정하는 WHERE 절을 추가합니다.

    예를 들어 FROM 절이 다음과 같은 경우

    FROM Products RIGHT JOIN [Order Details]  ON Products.ID = [Order Details].[Product ID]

    다음 WHERE 절을 추가합니다.

    WHERE Products.ID IS NULL

  10. WHERE 절 끝에 세미콜론(;) 입력하여 공용 구조체 쿼리의 끝을 나타냅니다.

  11. 디자인 탭의 결과 그룹에서 실행을 클릭합니다.

교차 조인

교차 조인은 Access 명시적으로 표현되지 않는다는 측면에서 내부 및 외부 조인과 다릅니다. 교차 조인에서 한 테이블의 각 행이 다른 테이블의 각 행과 결합되어 교차 제품 또는 카티시안 제품이라고 합니다. 명시적으로 조인되지 않은 테이블이 있는 쿼리를 실행할 때마다 교차 제품이 결과입니다. 교차 조인은 일반적으로 의도하지 않지만 유용할 수 있는 경우가 있습니다.

교차 조인을 사용하는 이유는 무엇인가요?

두 테이블 또는 쿼리 간의 가능한 모든 행 조합을 검사하려면 교차 조인을 사용합니다. 예를 들어 비즈니스가 멋진 한 해를 보냈고 고객에게 리베이트를 제공하는 것을 고려하고 있다고 가정해 보겠습니다. 각 고객의 구매를 합산하는 쿼리를 빌드하고, 몇 가지 가능한 리베이트 비율이 있는 작은 테이블을 만들고, 교차 조인을 수행하는 다른 쿼리에서 두 테이블을 결합할 수 있습니다. 결국 각 고객에 대한 가상의 리베이트 집합을 표시하는 쿼리가 표시됩니다.

교차 조인을 사용할 어떻게 할까요? 있나요?

교차 조인은 쿼리에 테이블 또는 쿼리를 포함할 때마다 생성되며 각 테이블 또는 쿼리에 대해 하나 이상의 명시적 조인을 만들지 않습니다. Access는 다른 테이블에 명시적으로 조인되지 않은 각 테이블 또는 쿼리의 모든 행을 결과의 다른 모든 행에 결합합니다. 이전 단락의 리베이트 시나리오를 고려합니다. 고객이 91명이며 5개의 가능한 리베이트 비율을 보려고 하는 것으로 가정합니다. 교차 조인은 455개의 행(91 및 5의 제품)을 생성합니다.

상상할 수 있듯이 의도하지 않은 교차 조인은 쿼리 결과에 엄청난 수의 행을 만들 수 있습니다. 또한 이러한 결과는 일반적으로 의미가 없습니다. 실제로 모든 행을 다른 모든 행과 결합하지 않으려는 경우 결과에 표시되는 결합된 행의 대부분은 의미가 없기 때문입니다. 마지막으로 의도하지 않은 교차 조인을 사용하는 쿼리를 실행하는 데 매우 오랜 시간이 걸릴 수 있습니다.

쿼리 디자인 보기의 의도하지 않은 크로스 조인

1. 원을 그리는 필드를 서로 조인해야 합니다.

의도하지 않은 교차 곱

1. 레코드 수가 매우 많습니다.

수정된 쿼리 결과

1. 레코드 수가 훨씬 적습니다.

맨 위로 이동

필드 값의 같지 않음을 기반으로 테이블 조인

조인은 조인된 필드의 동등성을 기반으로 할 필요가 없습니다. 조인은 보다 크거나(>), 보다 작음(<) 또는 같지 않음(<>)과 같은 비교 연산자를 기반으로 할 수 있습니다. 동등성을 기반으로 하지 않는 조인을 같지 않은 조인이라고 합니다.

같지 않은 필드 값을 기반으로 두 데이터 원본의 행을 결합하려는 경우 같지 않은 조인을 사용합니다. 일반적으로 같지 않은 조인은 보다 크거나 (>), 보다 작음(<), 보다 크거나 같거나 (>=) 보다 작거나 같은 (<=) 비교 연산자를 기반으로 합니다. 를 기반으로 하는 같지 않은 조인(<>) 연산자는 거의 많은 행을 교차 조인만큼 반환할 수 있으며 결과를 해석하기 어려울 수 있습니다.

어떻게 할까요? 같지 않은 조인을 사용합니까?

같지 않은 조인은 디자인 보기에서 지원되지 않습니다. 사용하려는 경우 SQL 보기를 사용하여 사용해야 합니다. 그러나 디자인 보기에서 조인을 만들고, SQL 보기로 전환하고, 등호(=) 비교 연산자를 찾은 다음 사용하려는 연산자로 변경할 수 있습니다. 이렇게 한 후에는 먼저 비교 연산자를 SQL 보기에서 같음(=)으로 다시 변경하는 경우에만 디자인 보기에서 쿼리를 다시 열 수 있습니다.

조인 삭제

Access에서 원하지 않는 조인을 자동으로 만들거나 실수로 조인을 만드는 경우(예: 데이터 형식이 다른 두 필드 간의 조인) 조인을 삭제할 수 있습니다.

  1. 쿼리 디자인 표에서 제거할 조인을 클릭합니다.

  2. DELETE 키를 누릅니 .

-또는-

  • 쿼리 디자인 표에서 제거할 조인을 마우스 오른쪽 단추로 클릭한 다음 삭제를 클릭합니다.

맨 위로 이동

추가 쿼리를 사용하여 테이블에 레코드 추가

, 편집 또는 삭제 관계를

기반으로 쿼리 만들기

통합 쿼리를 사용하여 여러 선택 쿼리의 결과를 결합

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.