home
조인 심화
외부 조인
LEFT OUTER JOIN
으로 왼쪽에 있는 테이블의 모든 행을 포함.- LEFT나 RIGHT는 데이터에 NULL이 있을 수 있는 테이블을 서버에 알려주는 ㅇ겨할을 한다.
- 세 개의 외부 조인도 가능하다.
교차 조인
CROSS JOIN
으로 데카르트 곱처럼 생성 가능- 2005-01-01 부터 2006-01-01 까지의 날짜를 생성해줄 수 있다.
- 밑은 1부터 100까지의 집합을 만들어주는 SQL
SELECT (a.a * 10) + b.a + 1 AS number FROM ( SELECT 0 a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 ) a CROSS JOIN ( SELECT 0 a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 ) b ORDER BY number;
자연 조인
- 데이터베이스 서버가 필요한 조인 조건을 결정할 수 있도록 허용하는 조인
NATURAL JOIN
으로 사용
조건식
CASE 표현식
CASE WHEN THEN ELSE END
로 사용
단순 CASE 표현식
CASE category.name WHEN 'Childeren' THEN 'ALL AGES'
로 단순 로직 가능
쓰이는 곳
- 결과셋 반환, 존재 여부 확인 등에 쓰임
- 0으로 나누기 오류도 해결 가능
- 분모가 0이 되면 NULL 값이 뜨기 때문에
CASE WHEN count(amount) = 0 THEN 1 ELSE count(amount)
이런식으로 처리 가능
- 분모가 0이 되면 NULL 값이 뜨기 때문에