1. Inner Join
- A 테이블과 B 테이블 사이에 ON 을 만족하는 교집합 데이터
- 하나라도 일치 하지 않으면 표시하지 않음
1.1 NATURAL JOIN
- A 테이블과 B 테이블에 공통되는 컬럼의 모든 것 (데이터 타입도 같아야합니다.)
- Inner Join과 비슷 ( 일치하지 않는 것은 표시 X)
1.2 Using
-
ON 사용과 거의 같음.
-
컬럼의 이름이 서로 같아야함.
-
-
2. Outer Join
Left Join과 Right Join 2가지 존재
2.1 Left Join
A 테이블 Left Join B 테이블의 경우
- A 테이블 전체 조회와 교집합인 B
- B의 데이터가 없는 경우 Null 표시
- Left Outer Join과 같음. 생략 가능.
2.1.1 Left Join ... Where B.data is Null
2.1.2 Natural Left Join과의 비교.
mysql> SELECT * FROM t1 NATURAL LEFT JOIN t2;
mysql> SELECT * FROM t1 LEFT JOIN t2 ON (t1.a = t2.a);
3. Full Outer Join
- Mysql은 지원하지 않음.
- Union 사용.
3.1 e.g
select *from A left join B
union
select *from A right join B;
4. Cross Join
- 조인된 테이블 간 모든 경우의 수
- A 테이블 Row * B 테이블 Row
5. 출처
https://dev.mysql.com/doc/refman/8.0/en/join.html