틱택토 게임 프로젝트 기능 중 사용자 정보와 승패전적을
함께 업데이트해야하는 페이지가 있다.
이 때 나는 게임회원정보를 담고있는 테이블과 승패전적을 담고있는 테이블의
PK를 조인하여 아래와 같이 내 정보에서 내 아이디와 승패 전적을 띄우는데 성공하였다.
여기서 예제를 알아보기 전에 Join에 대해 알아보자
JOIN이란?
검색하고 싶은 컬럼이 다른 테이블에 있을 경우 사용하며 여러개의 테이블을 하나의
테이블인 것처럼 활용하는 것이다.
보통 Primary key 혹은 Foreign key로 두 테이블 연결하여 사용한다.
left outer join, left join
왼쪽 테이블 기준으로 join한다.
기준 테이블의 결과 + 기준 테이블의 중복값을 보여준다.
//LEFT OUTER JOIN
SELECT
A.컬럼
B.컬럼
FROM
기존테이블A LEFT OUTER JOIN 조인테이블B
ON A. 기준키 = B.기준키
//LEFT join
SELECT
A.컬럼
B.컬럼
FROM
기존테이블A LEFT JOIN 조인테이블B
ON A. 기준키 = B.기준키
<select id="ranking" resultType="hashmap">
<![CDATA[
select a.userid, a.total, a.win, a.lose, a.ranking, g.playername
from (select userid, total, win, lose, dense_rank() over (order by win desc , total desc) as ranking
from user_record_kde) a
left join game_user_kde g on (a.userid = g.userid)
where a.ranking <= 4;
]]>
</select>
두 테이블의 PK인 userid를 left조인하여 위와 같은 결과를 출력하였다,
'Back-end Skill > DataBase' 카테고리의 다른 글
JPA 사용할 때 주의해야할 점 2편_관계매핑의 정의와 mappedBy 이해하기 (0) | 2022.10.06 |
---|---|
Python pandas을 통해 DB 마이그레이션하는 방법 (1) | 2022.10.05 |
MySQL / MariaDB 페이지네이션 쿼리 작성하는 법 (0) | 2022.06.28 |
TIL 37일차 SQL 데이터베이스 #NULL의 개념과 Not NULL의미 (0) | 2021.11.12 |
TIL 36일차 SQL 데이터베이스 #key (2) | 2021.11.11 |