데이터 베이스/SQL

[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  

 

 

반응형