MySQL - JOIN

iseon_u·2022년 6월 25일
0

Database

목록 보기
21/23
post-thumbnail

JOIN


  • SQL 로 2개 이상의 테이블을 연결해 데이터를 조회

조인 칼럼

  • 연결 대상인 두 테이블에서 같은 값을 가진 칼럼
  • 같은 값을 가진 조인 칼럼이 있어야 두 테이블을 연결 가능

조인 특징

  • 조인하는 테이블에는 같은 값을 가진 칼럼이 있어야 한다.
  • 2개 이상의 테이블을 조인할 수 있다.
  • 조인할 때 테이블에 대한 별칭을 사용한다. (AS)
  • 조인 시 조인 조건이 필요하다.

외래 키

  • 조인에 참여하는 두 테이블 사이에 관계를 맺을 때 외래 키 사용
  • 외래 키
    • 테이블 간 부모-자식 관계를 설정할 때 사용하는 제약 조건

조인의 종류

내부 조인

  • 조인 칼럼의 값이 같은 로우만 조회

INNER JOIN 내부 조인

SELECT ...
		FROM 테이블1 [AS] 별칭1
		[INNER] JOIN 테이블2 [AS] 별칭2
		ON 별칭1.칼럼1 = 별칭2.칼럼2
		AND ...
		WHERE ... ;
FROM 테이블1 [AS] 별칭1
  • FROM 다음에 조인에 참여할 첫 번째 테이블을 명시
[INNER] JOIN 테이블2 [AS] 별칭2
  • INNER JOIN 다음에 조인에 참여할 두 번째 테이블을 명시
  • INNER 생략 가능
ON 별칭1.칼럼1 = 별칭2.칼럼2
  • ON 다음에 조인 조건을 기술
  • 두 테이블의 조인 칼럼 값이 같다고 기술
  • 칼럼을 식별하기 위해 테이블명.칼럼명 형태 사용
  • 일반적으로 별칭 사용

FROM과 WHERE 절로 내부 조인하기

SELECT ...
		FROM 테이블1 [AS] 별칭1,
				 테이블2 [AS] 별칭2
		WHERE 별칭1.칼럼1 = 별칭2.칼럼2
		AND ... ;
  • 조인에 참여할 테이블은 FROM 절에 모두 명시
  • WHERE 절에 AND 연산자로 조인 조건 추가

외부 조인

  • 조인 칼럼의 값이 같지 않은 건까지 함께 조회

LEFT 조인

SELECT ...
	FROM 테이블1 [AS] 별칭1
	LEFT [OUTER] JOIN 테이블2 [AS] 별칭2
		ON 별칭1.칼럼1 = 별칭2.칼럼2
		AND ...
	WHERE ... ;
  • LEFT JOIN 문 기준으로 왼쪽 테이블에서 조인 조건을 만족하지 않는 건을 추가로 조회

RIGHT 조인

SELECT ...
	FROM 테이블1 [AS] 별칭1
	RIGHT [OUTER] JOIN 테이블2 [AS] 별칭2
		ON 별칭1.칼럼1 = 별칭2.칼럼2
		AND ...
	WHERE ... ;
  • RIGHT JOIN 문 기준으로 오른쪽 테이블에서 조인 조건을 만족하지 않는 건을 추가로 조회
profile
🧑🏻‍💻 Hello World!

0개의 댓글