반응형
1. 정의
=> union(교집합)/ interction(합집합)
- 테이블 2개가 서로 join을 할 때, 두 Table 사이에 유효 join 조건을 적지 않았따면,
해당 테이블에 대한 모든 데이터를 전부 결합하여 Table에 존재하는 행 갯수를 곱한 만큼의 결과값이 반환되는 것이다.
=> Table A 의 row : 3 개 / Table B 의 row : 3 개
=> 카테시안 곱 발생시 : 9개의 Row 출력
2. 원인
카테시안 곱은 join 쿼리 중에 WHERE 절에 기술하는 join 조건이 잘못 기술되었거나 아예 없을 경우 발생하는 현상
3. 예시
TABLE Student
Student_ID | Student_NM | Student_Total_Score | |
1 | AAA-001 | 학생1 | 97 |
2 | AAA-002 | 학생2 | 65 |
3 | AAA-003 | 학생3 | 77 |
TABLE Student_Grade_Detail
Student_ID | Student_NM | Math_Score | English_Score | History_Score | |
1 | AAA-001 | 학생1 | 98 | 96 | 95 |
2 | AAA-002 | 학생2 | 45 | 77 | 65 |
3 | AAA-003 | 학생3 | 87 | 64 | 73 |
SELECT *
FROM Student A
LEFT OUTER JOIN Student_Grade_Detail B
ON 1 = 1;
Join 값
Student_ID | Student_NM | Math_Score | English_Score | History_Score | ||
1 | AAA-001 | 학생1 | 98 | 96 | 95 | |
2 | AAA-001 | 학생2 | 45 | 77 | 65 | |
3 | AAA-001 | 학생3 | 87 | 64 | 73 | |
4 | AAA-002 | 학생2 | 98 | 96 | 95 | |
5 | AAA-002 | 학생2 | 45 | 77 | 65 | |
6 | AAA-002 | 학생2 | 87 | 64 | 73 | |
7 | AAA-003 | 학생1 | 98 | 96 | 95 | |
8 | AAA-003 | 학생2 | 45 | 77 | 65 | |
9 | AAA-003 | 학생3 | 98 | 64 | 73 |
반응형
'데이터 베이스 > SQL' 카테고리의 다른 글
[SQL]카테시안 조인을 잘 설명한 사이트 기록 (0) | 2023.11.23 |
---|---|
[SQL] WSL postgresql 설치 방법 (0) | 2022.07.21 |
[Sql] Unique 와 Distinct 의 차이점 (0) | 2022.07.20 |
[Postgresql] 데이터 import 하는 법 (0) | 2022.06.21 |
[MySQL] from_unixtime( ) 함수 (0) | 2021.09.17 |