언어/데이터 베이스
[SQL] 카테시안 곱
쟈누
2024. 1. 12. 15:06
반응형
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 |
반응형