-
7.2 Equijoins, self-joins, and cross-joins데이터베이스 시스템 2024. 11. 8. 12:41
Equijoins 동등조인
동등 조인은 두 테이블의 열을 = 연산자로 비교한다. 대부분의 조인은 동등 조인이다. 비동등 조인은 <, >와 같은, = 이외의 연산자로 열을 비교한다.
아래 그림에서, 비동등 조인은 모든 구매자와 구매자의 최대 가격보다 낮은 가격의 부동산을 선택한다.
Refer to the following tables.
1) Which equijoin generates the following result?▼View solution
더보기SELECT Class.Name, Student.Name FROM Class LEFT JOIN Student ON Student.Code = Class.Code AND StudentGrade >= 3.0;
2) Which non-equijoin returns students who scored higher than the class average?
▼View solution
더보기SELECT Student.Name FROM Class INNER JOIN Student ON StudentGrade > AverageGrade AND Student.Code = Class.Code;
3) Which join clauses can be used in a non-equijoin query?
더보기All JOIN clauses
Self-joins
셀프조인은 본인 테이블에 조인하는 것이다. 테이블의 비교 가능한 데이터 타입을 가진 어떤 열이라도 비교할 수 있다. 외래 키와 참조된 기본 키가 같은 테이블에 있는 경우, 자기 조인은 보통 이러한 키 열을 비교한다. 셀프 조인에서는 왼쪽과 오른쪽 테이블을 구분하기 위해 별칭(alias)이 무조건 필요하다.
아래 그림에서 A는 왼쪽 테이블의 별칭이고, B는 오른쪽 테이블의 별칭이다. A.Name은 왼쪽 테이블의 Name 열로, employee을 나타낸다. B.Name은 오른쪽 테이블의 Name 열로, manager를 나타낸다. 결과는 직원과 각 직원의 관리자를 함께 보여준다.
Refer to the following table.
CREATE TABLE Person ( ID INT, FullName VARCHAR(20) NOT NULL, FirstParentID INT, SecondParentID INT, PRIMARY KEY (ID), FOREIGN KEY (FirstParentID) REFERENCES Person(ID), FOREIGN KEY (SecondParentID) REFERENCES Person(ID) );
The following self-join lists the name of each person with the person's parent (or legal guardian). If a person has two parents, each parent appears in a separate row.
SELECT ___A___, Parent.FullName FROM Person AS Child INNER JOIN ___B___ ON Child.FirstParentID = Parent.ID OR ___C___;
What is A,B,C?
더보기Child.FullName Person AS Parent Child.SecondParentID = Parent.ID
Cross-joins
크로스 조인은 두 테이블의 열을 비교하지 않고 결합한다. CROSS JOIN 절을 사용하며 ON 절이 필요하지 않다. 그 결과, 두 테이블의 모든 가능한 행 조합이 결과에 나타난다.
Equijoin: Compares columns of two tables with the = operator.
Non-equijoin: Compares columns with an operator other than =, such as < and >.
Self-join: Joins a table to itself.
Cross-join: Combines two tables without comparing columns.
'데이터베이스 시스템' 카테고리의 다른 글
7.4 LAB - Select lesson schedule with inner join (0) 2024.11.10 7.3 LAB - Select movie ratings with left join (0) 2024.11.09 7.1 Join queries (0) 2024.11.07 6.3 Aggregate functions (0) 2024.10.23 6.2 Simple Functions (0) 2024.10.22