DB

외부 join

sdafdq 2023. 11. 2. 10:53

내부 조인은 두 테이블 모두 데이터가 있어야만 결과가 나왔다.

이와 달리 외부 조인은 한 쪽에만 있어도 결과를 준다.

단 null로 가져옴.

 

 

먼저 inner 조인

select * from buy b inner join member m on b.mem_id = m.mem_id;

 

 

그 다음 outer join

select * from member m left outer join buy b on m.mem_id = b.mem_id;

member를 다 가져오는데, 그 중 buy에 기록이 없는 mem_id도 있음.

 

참고로,

select * from buy b left outer join member m on m.mem_id = b.mem_id;
select * from member m left outer join buy b on m.mem_id = b.mem_id;

저 둘이 다름.

그러니까, from 에 있는 테이블 기준으로 가져온다고 생각하셈. 저게 주임.

저 from에 있는 주에 on 해서 맞는 걸 추가로 가져온다고 생각하셈.

 

그래서 저런 일대다나 다대일 관계에서는 일쪽이 주로 가져오는 게 좋은 듯?

buy를 주로. 안 그럼 null 데이터가 많으니..

 

그러니까, left join은 from인 테이블 쪽을 나열한 다음, 일치하는 걸 오른쪽 행에 추가시킴.

 

 

 

inner join, outer join은 무조건 on과 함께 써야 함. 

cross join은 안씀.

'DB' 카테고리의 다른 글

자체 조인  (0) 2023.11.03
상호조인  (0) 2023.11.03
join  (0) 2023.11.02
변수  (0) 2023.11.02
DB 데이터 타입  (0) 2023.11.02