--outer join 배우는날 /엑셀에서 vlookup 사용해서 값 가져오는거랑 동일
--내가 찾으려고 하는 값이 존재하지않으면 보여주지않는다. 왼쪽 정보를 기준으로 정보를 가져온다.
--값이 존재하지 않더라도 행의수는 살아잇음. 기준 테이블이 어디에 있는지에 따라 LEFT/RIGHTJOIN으로 나뉜다.
--<ANSI JOIN 방식>
/* SELECT 필드명
FROM 테이블명1 LEFT/RIGHT OUTER JOIN 테이블명2
ON 테이블명1.필드명1 = 테이블명2.필드명2
WHERE 조건식
*/
SELECT *
FROM EMPLOYEES left outer join departments
on employees.department_id = departments.department_id
;
SELECT *
FROM EMPLOYEES right outer join departments
on employees.department_id = departments.department_id
;
SELECT *
FROM departments left outer join employees
on employees.department_id = departments.department_id
;
--outer join은 leftjoin 하나만 있는것으로 알고 기준테이블을 뭘로할지만 명확하게 알고있다면 한가지로만으로도 사용할수 있겠다.
--<ORACLE JOIN 방식> >> join사인, 표시를 해줘야함.
SELECT *
FROM employees, departments
WHERE employees.department_id = departments.department_id(+) --기준테이블 반대쪽에 조인사인을 주면, 반대테이블이 기준이 되고, 이 기준으로 left조인 된다고 생각.
--이경우 employees.department_id 기준으로 departments.department_id를 가져와서 조인해준거임
;
SELECT *
FROM employees, departments
WHERE employees.department_id(+) = departments.department_id
--이경우 departments를 기준테이블로 하고싶어서 employeedp (+)조인 사인을 줌.
;
--각각 테이블에 존재하지않는 값을 모두 출력하고 싶을때! > 양쪽에 조인사인(+)을 주는게 아니다!
--이때는 ANSI표준 방식인 FULL OUTER JOIN을 사용하면 된다.
SELECT *
FROM employees FULL OUTER JOIN departments
ON employees.department_id = departments.department_id
--이경우 departments를 기준테이블로 하고싶어서 employeedp (+)조인 사인을 줌.
;
'📝수업후기 잊지말기 > 빡공단31기 SQL' 카테고리의 다른 글
빡공단31기 SQL 25강 (1) | 2023.02.25 |
---|---|
빡공단31기 SQL 24강 JOIN차이점 따로 찾아볼것 (0) | 2023.02.24 |
빡공단31기 SQL 22강 (0) | 2023.02.22 |
빡공단31기 SQL 21강 (0) | 2023.02.21 |
빡공단31기 SQL 20강 (0) | 2023.02.20 |