외부 조인
테이블에 모두 데이터가 있어야 결과가 나오는 내부 조인과 달리 외부 조인은 한짜에만 데이터가 있어도 결과가 나옴
외부조인의 형식
select m.mem_id, m.mem_name, m.addr
from member m -- 왼쪽에 있는 회원 테이블 기준으로 외부조인
left outer join buy b -- 왼쪽에 있는 회원 테이블 기준으로 외부조인, 왼쪽 테이블의 내용은 모두 출력되어야 한다
on m.mem_id = b.mem_id
order by m.mem_id;
기타 조인
상호 조인
한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능
회원 테이블과 구매 테이블의 상호 조인
select *
from buy
cross join member ;
대용량 테이블 만들기
create table ~select문 사용
create table cross_table
select *
from sakila.actor
cross join world.country;
select * from cross_table limit 5;
자체 조인
자신이 자신과 조인한다는 의미
예시) 회사의 조직 관계
자체 조인의 형식
select <열 목록>
from <테이블> 별칭A
inner join <테이블> 별칭B
on <조인될 조건>
[where 검색 조건]
자체 조인 활용
경리부장 직속 상관의 연락처
use market_db;
insert into emp_table value('대표', null, '0000');
insert into emp_table value('영업이사', '대표', '1111');
insert into emp_table value('관리이사', '대표', '2222');
insert into emp_table value('정보이사', '대표', '3333');
insert into emp_table value('영업과장', '영업이사', '1111-1');
insert into emp_table value('경리부장', '관리이사', '2222-1');
insert into emp_table value('인사부장', '관리이사', '2222-2');
insert into emp_table value('개발팀장', '정보이사', '3333-1');
insert into emp_table value('개발주임', '정보이사', 3333-1-1);
select A.emp "직원", B.emp "직속상관", B.phone "직속상관연락처"
from emp_table A
inner join emp_table B
on A.manger = B.emp
where A.emp = '경리부장';
'데이터베이스(DB)' 카테고리의 다른 글
테이블과 뷰(1) (0) | 2024.12.03 |
---|---|
SQL 고급 문법(4) (0) | 2024.11.25 |
SQL 고급 문법(2) (0) | 2024.11.23 |
SQL 고급 문법 (5) | 2024.11.20 |
SQL 기본 문법(3) (2) | 2024.11.15 |