테이블 및 쿼리 조인

테이블 및 쿼리 조인

참고: 사용자 언어로 가능한 한 빨리 가장 최신의 도움말 콘텐츠를 제공하고자 합니다. 이 페이지는 자동화를 통해 번역되었으며 문법 오류나 부정확한 설명을 포함할 수 있습니다. 이 목적은 콘텐츠가 사용자에게 유용하다는 것입니다. 이 페이지 하단의 정보가 도움이 되었다면 알려주세요. 쉽게 참조할 수 있는 영어 문서가 여기 있습니다.

Access 쿼리에 여러 데이터 원본을 포함 하는 경우에는 조인을 사용 하 여 데이터 원본이 서로 어떻게 연결 되어 있는지에 따라 표시할 레코드를 제한 합니다. 또한 조인을 사용 하 여 두 데이터 원본의 레코드를 결합 하 여 원본의 각 레코드 쌍이 쿼리 결과에서 하나의 레코드가 되도록 할 수 있습니다.

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

참고: 테이블에 조인 하는 것과 같은 방식으로 쿼리를 조인할 수 있으며, 둘 다 조인할 수도 있습니다.

이 문서의 내용

개요

조인 유형

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

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

두 테이블의 모든 행을 표시 하 고 공통 값이 있는 위치에 연결

교차 조인

필드 값이 다름에 따라 테이블 조인

조인 삭제

개요

데이터베이스는 서로 논리적으로 관계를 형성 하는 데이터 테이블 모음입니다. 관계를 사용 하 여 공통 된 필드를 기준으로 테이블을 연결 합니다. 테이블은 여러 관계의 일부일 수 있지만, 각 관계에는 항상 정확히 두 개의 테이블이 있습니다. 쿼리에서 관계는 조인으로 표시 됩니다.

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

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

조인에는 내부 조인, 외부 조인, 크로스 조인, 부등 조인이 네 가지 기본 형식으로 되어 있습니다. 이 문서에서는 사용할 수 있는 각 유형의 조인, 각 유형을 사용 하는 이유 및 조인을 만드는 방법을 살펴봅니다.

조인은 테이블에 대 한 관계를 쿼리 하는 데 사용 됩니다. 두 원본의 데이터를 공통으로 사용 하는 데이터 값에 따라 결합할 수 있는 방법에 대해 설명 합니다. 다음은 쿼리 디자인 보기의 조인에 대 한 설명으로, 조인 속성이 대화 상자에 열려 있는 경우입니다.

조인 속성 대화 상자

표 사이에 있는이 선은 조인을 나타냅니다. 조인을 두 번 클릭 하 여 조인 속성 대화 상자 (표시)를 열고 조인을 검토 하거나 변경 합니다.

조인이 방향성이 되기도 합니다. 대화 상자의이 영역에는 조인에 있는 테이블 및 테이블에 조인 하는 데 사용 되는 필드가 표시 됩니다.

이 영역에서는 조인 유형을 결정 합니다. 옵션 1은 내부 조인, 2는 왼쪽 우선 외부 조인, 3은 오른쪽 외부 조인입니다.

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

맨 위로 이동

조인 유형

조인에는 내부 조인, 외부 조인, 크로스 조인, 부등 조인이 네 가지 기본 형식으로 되어 있습니다. 크로스 조인 및 부등 조인은 고급 조인 형식이 며 거의 사용 되지 않지만, 조인이 작동 하는 방식을 완전히 이해 하려면이를 알아야 합니다.

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

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

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

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

완전 외부 조인: 모든 데이터 (가능 하면 통합 가능)

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

크로스 조인: 모든 데이터를 다양 한 방식으로 결합 하 여

대부분의 경우 크로스 조인은 쿼리에 두 개의 테이블을 추가 하 고이에 대 한 조인을 잊어버린 의도 한 결과입니다. Access는 한 테이블의 모든 레코드를 다른 테이블의 모든 레코드와 결합 하 여 가능한 모든 레코드를 함께 표시 하는 것을 의미 합니다. 데이터는 결합할 수 없기 때문에 이러한 종류의 조인은 유용한 결과를 생성 하지 않습니다. 그러나 교차 조인이 필요한 경우에는 몇 가지 경우가 있습니다.

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

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

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

조인 된 필드에 일치 하는 값이 있는 행만 표시 하려면 내부 조인을 사용 합니다. Access에서 자동으로 내부 조인이 만들어집니다.

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

내부 조인을 사용 하는 방법

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

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

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

내부 조인의 SQL 구문

내부 조인은 다음과 같이 FROM 절에서 SQL에 지정 됩니다.

FROM table1 INNER JOIN table2 ON table1.field1 비교 테이블 2.field2

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

구성 요소

설명

table1, table2

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

field1, field2

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

나란히

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

내부 조인 구문에 대 한 자세한 내용은 inner join 연산항목을 참조 하세요.

맨 위로 이동

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

외부 조인은 조인의 양 쪽에 있는 일부 행이 정확히 일치 하는 경우에 한 테이블의 모든 행과 조인의 양쪽에 공통 값을 공유 하는 다른 테이블의 행을 포함 해야 한다는 것을 쿼리 합니다.

외부 조인은 왼쪽 우선 외부 조인 일 수도 있고 오른쪽 외부 조인이 될 수도 있습니다. 왼쪽 우선 외부 조인에서 쿼리는 SQL 문 from 절에 있는 첫 번째 테이블의 모든 행과 조인 필드에 두 테이블에 공통적인 값이 포함 된 다른 테이블의 행만 포함 합니다. 오른쪽 우선 외부 조인에서 쿼리는 SQL 문 from 절에 있는 두 번째 테이블의 모든 행과 조인 필드에 두 테이블에 공통적인 값이 포함 된 다른 테이블의 행만 포함 합니다.

참고: 연결을 두 번 클릭 한 다음 조인 속성 대화 상자를 확인 하 여 특정 조인의 왼쪽 테이블이 나 오른쪽 테이블에 해당 하는 테이블을 쉽게 확인할 수 있습니다. SQL 보기로 전환한 다음 FROM 절을 확인할 수도 있습니다.

외부 조인의 한 쪽에 있는 행 중 일부는 다른 테이블의 해당 행을 포함 하지 않기 때문에 해당 행이 다른 테이블의 쿼리 결과에서 반환 되는 필드 중 일부는 비어 있습니다.

외부 조인을 사용 하는 방법

기존 내부 조인을 수정 하 여 외부 조인을 만들 수 있습니다. 내부 조인이 없으면 하나를 만든 다음 외부 조인으로 변경 합니다.

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

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

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

  2. 조인 속성 대화 상자에서 옵션 2 와 옵션 3옆에 있는 선택 항목을 확인 합니다.

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

  4. 조인이 표시 되 고 모든 행이 조인 조건에 맞는 행만 포함 되는 데이터 원본에 포함 되는 데이터 원본에서 가리키는 화살표가 표시 됩니다.

모호한 외부 조인

LEFT join과 INNER join이 포함 된 쿼리를 만드는 경우 Access에서는 먼저 수행할 조인 작업을 결정 하지 못할 수 있습니다. 왼쪽 조인이 나 내부 조인이 먼저 수행 되는지에 따라 결과가 다르기 때문에 다음과 같은 오류 메시지가 표시 됩니다.

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

외부 조인의 SQL 구문

외부 조인은 다음과 같이 FROM 절에서 SQL에 지정 됩니다.

table1 [왼쪽 | RIGHT] table1에 테이블 2
를 조인 합니다. 이름 1 비교 테이블 2

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

구성 요소

설명

table1, table2

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

field1, field2

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

나란히

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

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

맨 위로 이동

두 테이블의 모든 행을 표시 하 고 공통 값이 있는 위치에 연결

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

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

  1. 완전 외부 조인에 사용 하려는 필드에 왼쪽 우선 외부 조인이 있는 쿼리를 만듭니다.

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

  3. SQL 코드를 복사 하려면 ctrl + C를 누릅니다.

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

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

    참고: 통합 쿼리를 사용 하 여 전체 외부 조인을 수행할 때는 ALL 키워드를 사용 하지 마세요.

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

  7. 붙여 넣은 코드에서 왼쪽 조인과오른쪽 연결을 변경 합니다.

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

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

    예를 들어 from 절은 다음과 같습니다.

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

    다음과 같은 WHERE 절을 추가 합니다.

    여기서 Products.ID는 NULL입니다.

  10. 세미콜론을 입력 합니다 (;) 통합 쿼리의 끝을 나타내기 위해 WHERE 절의 끝에 위치 합니다.

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

교차 조인

교차 조인은 Access 에 명시적으로 표시 되지 않으므로 내부 및 외부 조인과는 다릅니다. 교차 조인에서 한 테이블의 각 행을 다른 테이블의 각 행과 결합 하 여 교차곱 또는 카티션 곱을 계산 합니다. 명시적으로 조인 되지 않은 테이블이 있는 쿼리를 실행할 때마다 교차 제품이 반환 됩니다. 크로스 조인은 일반적으로 의도 하지 않지만, 유용할 수 있는 경우가 있습니다.

크로스 조인을 사용 하는 이유는 무엇 인가요?

두 테이블 또는 쿼리 사이에 있는 모든 행의 조합을 검사 하려는 경우 크로스 조인을 사용 합니다. 예를 들어 회사에 spectacular 년이 있었고 고객에 게 rebates를 제공 한다고 가정 합니다. 각 고객의 구매를 합산 하는 쿼리를 작성 하 고, 가능한 리베이트 백분율이 몇 개 있는 작은 표를 만들고, 교차 조인을 수행 하는 다른 쿼리에 두 가지를 결합할 수 있습니다. 각 고객에 대 한 가상 rebates 집합을 표시 하는 쿼리를 종료 합니다.

크로스 조인을 사용 하는 방법

크로스 조인은 쿼리에 테이블 또는 쿼리를 포함 하 고 각 테이블 또는 쿼리에 대해 하나 이상의 명시적 조인을 만들지 않는 경우에 생성 됩니다. Access에서는 다른 테이블이 나 쿼리에 명시적으로 조인 되지 않은 각 테이블 또는 쿼리의 모든 행을 결과의 다른 모든 행에 결합 합니다. 앞 단락에서 리베이트 시나리오를 고려 합니다. 91 고객을 보유 하 고 있으며 5 가지 가능한 리베이트 백분율을 확인 하려는 경우를 가정해 보겠습니다. 교차 조인은 455 행 (91 및 5의 제품)을 생성 합니다.

짐작할 수 있듯이, 의도 하지 않은 크로스 조인은 쿼리 결과에서 많은 양의 행을 만들 수 있습니다. 또한 일반적으로 모든 행을 다른 모든 행과 결합할 계획이 없다면 결과에 표시 되는 대부분의 결합 된 행이 의미가 없기 때문에 이러한 결과는 의미가 없습니다. 마지막으로, 의도 하지 않은 크로스 조인을 사용 하는 쿼리는 실행 하는 데 시간이 오래 걸릴 수 있습니다.

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

1. 원 안의 필드가 서로 조인 되어야 합니다.

의도하지 않은 교차 곱
위에 표시 된 의도 하지 않은 크로스 조인과 함께 반환 되는 외적입니다.

1. 레코드의 수가 매우 많은 것을 확인 합니다.

수정된 쿼리 결과
올바른 조인을 만든 후의 결과입니다.

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

맨 위로 이동

필드 값이 다름에 따라 테이블 조인

조인은 조인 된 필드의 동일성 을 기준으로 하지 않아도 됩니다. 조인은 보다 큼 (>), 작음 (<) 또는 같지 않음 (<>) 등의 모든 비교 연산자를 기준으로 할 수 있습니다. 등가를 기반으로 하지 않는 조인을 동등 조인 이라고 합니다.

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

부등 조인을 사용 하는 방법

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

조인 삭제

원하지 않는 조인이 자동으로 생성 되는 경우 또는 데이터 형식이 서로 다른 두 필드 간의 조인과 같이 실수로 조인을 만드는 경우 조인을 삭제할 수 있습니다.

  1. 쿼리 디자인 눈금에서 제거 하려는 조인을 클릭 합니다.

  2. delete키를 누릅니다.

-또는-

  • 쿼리 디자인 눈금에서 제거 하려는 조인을 마우스 오른쪽 단추로 클릭 하 고 삭제를 클릭 합니다.

맨 위로 이동

참고 항목

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

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

여러 테이블을 기반으로 하는 쿼리 만들기

관계 만들기, 편집 또는 삭제

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

이 정보가 유용한가요?

의견 주셔서 감사합니다!

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

×