반응형
INNER JOIN
2개 이상의 테이블이 있다고 가정하고 여태까지 배운 내용으로 테이블을 합쳐보겠다.
한 테이블에는 userid와 주소가 있다고 가정하고
다른 테이블에는 userid와 같은 값을 가진 id와 그 user들이 산 구매상품의 정보들이 있다고 가정하겠다.
Old버전:
SELECT *
FROM Users,Orders
WHERE Users.id = Orders.userid
이런식으로 접근 할 수 있다. FROM절을 통해 2개의 테이블을 불러온 후 WHERE절을 이용하여 해당 column의 값들이 같은 값들만 갖고온다.
New 버전:
SELECT *
FROM Users
INNER JOIN Orders ON Users.id = Orders.userid
이런식으로 INNER JOIN을 사용하여 값이 같은 테이블을 붙여 줄 수 있다.
- sql join visualizer
위 사이트는 참고 사이트이다. - INNER JOIN은 두테이블에 공통적인 값이 있는 데이터만 보여준다. (한쪽만 있는 테이블에 있는 값은 보여주지않는다.)
LEFT JOIN
- LEFT JOIN은 두테이블에 공통적인 값뿐만아니라 LEFT Table에 있는 데이터도 보여준다. (공통적으로 값이 없는 부분은 NULL로 출력됨)
- FROM을 기준으로 한다.
SELECT *
FROM Users
LEFT JOIN Orders ON Users.id = Orders.userid
- 밑에 코드는 Orders의 값이 NULL인 경우들만 보여준다.
SELECT *
FROM Users
LEFT JOIN Orders ON Users.id = Orders.userid
WHERE Orders IS NULL
RIGHT JOIN
- LEFT JOIN과 마찬가지의 원리이지만 RIGHT JOIN 다음 올 table을 기준으로 작동한다.
- 잘 쓰이지 않는다.
'SQL > MySQL' 카테고리의 다른 글
[MYSQL] JOIN 예제문제 풀어보기 (0) | 2022.01.29 |
---|---|
[MySQL] 시간 더하기 , 빼기 (0) | 2022.01.29 |
[MYSQL] table 피봇팅 (0) | 2022.01.16 |
[MYSQL] 조건문 (0) | 2022.01.07 |
[MYSQL] HackRank GROUP BY 문제들 풀어보기 (0) | 2022.01.05 |