수동으로 자체 조인 만들기(Visual Database Tools)
적용 대상: SQL Server
테이블에 데이터베이스에 반사 관계가 없더라도 테이블을 자체적으로 조인할 수 있습니다. 예를 들어, 자체 조인을 사용하여 같은 도시에 살고 있는 만든 이 쌍을 찾을 수 있습니다.
모든 조인과 마찬가지로 자체 조인에는 두 개 이상의 테이블이 필요합니다. 차이점은 쿼리에 두 번째 테이블을 추가하지 않고 같은 테이블의 두 번째 인스턴스를 추가한다는 점입니다. 이렇게 하면 테이블의 첫 번째 인스턴스에 있는 열을 두 번째 인스턴스의 동일한 열과 비교할 수 있으므로 열의 값을 서로 비교할 수 있습니다. 쿼리 및 뷰 디자이너는 테이블의 두 번째 인스턴스에 별칭을 할당합니다.
예를 들어 버클리 내에서 모든 작성자 쌍을 찾기 위해 자체 조긴을 만드는 경우 테이블의 첫 번째 인스턴스에 있는 city
열을 두 번째 인스턴스의 city
열과 비교합니다. 완성된 쿼리는 다음과 같습니다.
SELECT
authors.au_fname,
authors.au_lname,
authors1.au_fname AS Expr2,
authors1.au_lname AS Expr3
FROM
authors
INNER JOIN
authors authors1
ON authors.city
= authors1.city
WHERE
authors.city = 'Berkeley'
자체 조인을 만들려면 종종 여러 조인 조건이 필요합니다. 이유를 알아보려면 이전 쿼리의 결과를 살펴보십시오.
Cheryl Carson Cheryl Carson
Abraham Bennet Abraham Bennet
Cheryl Carson Abraham Bennet
Abraham Bennet Cheryl Carson
첫 번째 행은 쓸모가 없습니다. 셰릴 카슨이 셰릴 카슨과 같은 도시에 살고 있음을 나타냅니다. 두 번째 행은 똑같이 쓸모가 없습니다. 이 쓸모없는 데이터를 제거하려면 두 작성자 이름이 서로 다른 작성자를 설명하는 결과 행만 유지하는 다른 조건을 추가합니다. 결과 쿼리는 다음과 같습니다.
SELECT
authors.au_fname,
authors.au_lname,
authors1.au_fname AS Expr2,
authors1.au_lname AS Expr3
FROM
authors
INNER JOIN
authors authors1
ON authors.city
= authors1.city
AND authors.au_id
<> authors1.au_id
WHERE
authors.city = 'Berkeley'
결과 집합이 향상되었습니다.
Cheryl Carson Abraham Bennet
Abraham Bennet Cheryl Carson
그러나 두 개의 결과 행은 중복됩니다. 첫 번째는 카슨이 베넷과 같은 도시에 살고 있다고 말하고, 두 번째는 베넷이 카슨과 같은 도시에 살고 있다고 말합니다. 이런 중복 결과를 제거하려면 두 번째 조인 조건을 “not equals”에서 “less than”으로 변경하면 됩니다. 완성된 쿼리는 다음과 같습니다.
SELECT
authors.au_fname,
authors.au_lname,
authors1.au_fname AS Expr2,
authors1.au_lname AS Expr3
FROM
authors
INNER JOIN
authors authors1
ON authors.city
= authors1.city
AND authors.au_id
< authors1.au_id
WHERE
authors.city = 'Berkeley'
그리고 결과 집합은 다음과 같습니다.
Cheryl Carson Abraham Bennet
수동으로 자체 조인을 만드는 방법
작업하려는 테이블 또는 테이블 반환 개체를 다이어그램 창에 추가합니다.
다이어그램 창에 동일한 테이블 또는 테이블 반환 개체가 다이어그램 창에 두 번 표시되도록 동일한 테이블을 다시 추가합니다.
쿼리 및 뷰 디자이너는 테이블 이름에 순차 번호를 추가하여 두 번째 인스턴스에 별칭을 할당합니다. 또한 쿼리 및 뷰 디자이너는 다이어그램 창에서 테이블 또는 테이블 반환 개체의 두 항목 사이에 조인 쥴울 만듭니다.
조인 선을 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴에서 속성 을 선택합니다.
속성 창에서 조인 조건 및 형식을 클릭하고 속성 오른쪽에 있는 줄임표(...)를 클릭합니다.
조인 대화 상자에서 필요에 따라 기본 키 간의 비교 연산자를 변경합니다. 예를 들어, 연산자를 (<)보다 작음으로 변경할 수 있습니다.
테이블 또는 테이블 반환 개체의 첫 번째 항목에서 기본 조인 열의 이름을 끌어서 두 번째 항목의 해당 열에 삭제하여 추가 조인 조건(예: authors.zip = authors1.zip)을 만듭니다.
출력 열, 검색 조건, 정렬 순서 등의 기타 쿼리 옵션을 지정합니다.
참고 항목
자체 조인 자동으로 만들기(Visual Database Tools)
조인을 사용한 쿼리(Visual Database Tools)