MySQL Join

00_8_3·2022년 7월 31일
0

MySQL 8.0

목록 보기
2/4

1. Inner Join

  • A 테이블과 B 테이블 사이에 ON 을 만족하는 교집합 데이터
  • 하나라도 일치 하지 않으면 표시하지 않음

1.1 NATURAL JOIN

  • A 테이블과 B 테이블에 공통되는 컬럼의 모든 것 (데이터 타입도 같아야합니다.)
  • Inner Join과 비슷 ( 일치하지 않는 것은 표시 X)

1.2 Using

  • ON 사용과 거의 같음.

  • 컬럼의 이름이 서로 같아야함.

    • ... ON A.id = B.id;
    • ... Using (id);

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

  • A 테이블에서 B 테이블의 차집합.

2.1.2 Natural Left Join과의 비교.

t1t2
1x2z
2y3w

mysql> SELECT * FROM t1 NATURAL LEFT JOIN t2;

abc
1xNULL
2yz

mysql> SELECT * FROM t1 LEFT JOIN t2 ON (t1.a = t2.a);

abac
1xNULLNULL
2y2z

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

0개의 댓글