MySQL

MySQL 조인(JOIN)

커피마시기 2023. 10. 28. 03:44

 
 

■ JOIN

데이터베이스에서 두개 이상의 테이블을 연결하여 하나의 결과의 테이블을 만드는 것을 의미한다
데이터 조회 시 다른 테이블의 데이터를 함께 조회 할 경우에 사용하며 데이터베이스에서 테이블을 분리하여 데이터 중복을 최소화 하고 데이터의 일관성을 유지하기 위해 사용한다
JOIN은 INNER JOIN, OUTER JOIN으로 나뉘며 OUTER JOIN은 다시  LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN으로 나뉜다
 
 
 
 
 
 
 

● INNER JOIN

조인하는 두 테이블에서 ON 절의 조건이 일치하는 결과만 출력한다

SELECT * FROM 테이블1 INNER JOIN 테이블2 ON 테이블1.열 = 테이블2.열;
결과

 
 
 
 
 
 

● LEFT, RIGHT OUTER JOIN

LEFT, RIGHT OUTER JOIN은 두 테이블이 합쳐질때 왼쪽 혹은 오른쪽 중 무엇을 기준으로 하였는가에 따라 기준 테이블의 것은 모두 출력 + 공통적인 부분이 출력된다
JOIN을 여러번 할 경우 어떤 순서로 하는지에 따라 결과 테이블에 조회되는 구성이 달라질 수 있기 때문에 JOIN문 작성 시에 가장 많은 열을 가져와야 할 테이블을 첫번째 테이블로 SELECT문에 우선적으로 적어주어야한다
 
 
 
 
 
 
 

  • LEFT JOIN

LEFT JOIN은 두 테이블 중 Table A를 기준으로 Table B 조합하는 JOIN이다

 

SELECT * FROM 테이블1 LEFT OUTER JOIN 테이블2 ON 테이블1.열 = 테이블2.열;
결과

 
 
 
 
 
 
 

  • RIGHT JOIN

LIGHT JOIN은 두 테이블 중 Table B를 기준으로 Table A를 조합하는 JOIN이다

SELECT * FROM 테이블1 RIGHT OUTER JOIN 테이블2 ON 테이블1.열 = 테이블2.열;
RIGHT JOIN + WHERE 조건 LIKE

 
 
 
 
 
 

  • 3중 JOIN

원하는 정보가 테이블 3개에 각각 있는 경우에 JOIN을 3번 하여 테이블을 모아줄때 사용된다

SELECT t.player_Age,t.player_name, l.player_Name, m.player_Name 
FROM tottenham_epl as t 
LEFT OUTER JOIN liverpool_epl AS l 
ON t.player_Age = l.player_Age 
LEFT OUTER JOIN mancity_epl AS m
ON l.player_Age = m.player_Age;

 
 
 
 
 
 

  • UNION

JOIN과는 별개로 두개의 테이블을 합치는 방법으로 여러개의 SELECT문의 결과를 하나의 테이블로 나타낼때 사용하며
DISTINCT(중복제거)가 자동으로 포함되어있어 두 개의 테이블에서 중복을 제거하고 합친 모든 행을 보여준다
각 각의 SELECT문으로 선택된 필드의 개수와 타입은 모두 같아야하며 필드의 순서 또한 같아야한다

SELECT 필드이름 FROM 테이블이름
UNION
SELECT 필드이름 FROM 테이블이름;

 
 
 
 
 


 
 
 
 
Today short review
 
JOIN을 어떻게 하느냐에 따라 출력되는 구성이 달라지기에 적절히 활용할 수 있도록 연습할 필요성이 느껴진다
헷갈리는 부분도 있었는데 틀린점이 있다면 알려주시면 감사하겠습니다

'MySQL' 카테고리의 다른 글

MySQL 기본문법 활용  (2) 2023.10.26
기본 SQL문법 정리  (1) 2023.10.22