join
두 개 이상의 테이블을 연결하여 데이터를 검색하는 방법
현재 테이블에서 취득할 수 없는 컬럼의 데이터를 상대 테이블에서 취득하기 위함
- inner join
inner join은 A와 B 테이블의 교집합을 반환
select * from A inner join B on A.key = B.key
select * from A , B where A.key=B.key
- full join
full outer join은 A와 B 테이블의 합집합을 반환
select * from A left join B
union
select * from A right join B
full outer join 중 A와 B 테이블의 교집합을 제외한 합집합을 반환
select * from A left join B
union
select * from A right join B
where A.key is null or B.key is null
- cross join
cross join은 A테이블의 모든 컬럼이 B테이블의 모든 컬럼에 조인하는 것이다.
select * from A cross join B
- left join
left outer join은 A와 B 테이블 중 A값과 A와 B가 중복되는 key값을 리턴하는 것이다.
select * from A left join B on A.key=B.key
left join은 left outer join 이후 B의 key 값이 is null인지 체크한다. (only a 이기 때문에)
select * from A left join B on A.key=B.key where B.key is null
- right join
right outer join은 A와 B 테이블 중 B값과 A와 B가 중복되는 key값을 리턴하는 것이다.
select * from A right join B on A.key=B.key
right join은 right outer join 이후 A의 key 값이 is null인지 체크한다. (only B 이기 때문에)
select * from A left join B on A.key=B.key where A.key is null
- self join
self join은 자기 자신을 가리키는 테이블을 두번 이상 참조하여 조인하는 것이다.
select * from A a1 join A a2
select * from A as a1 , A as a2
'MYSQL' 카테고리의 다른 글
MYSQL 함수 모음 (0) | 2023.01.03 |
---|---|
기본 문법 (0) | 2023.01.02 |