(Database : Basic-17) JOIN

Posted by : at

Category : Database


USE GameDB

CREATE TABLE testA
(
    a INTEGER
)

CREATE TABLE testB
(
    b VARCHAR(10)
)

INSERT INTO testA VALUES(1)
INSERT INTO testA VALUES(2)
INSERT INTO testA VALUES(3)

INSERT INTO testB VALUES('A')
INSERT INTO testB VALUES('B')
INSERT INTO testB VALUES('C')

SELECT *
FROM testA
SELECT *
FROM testB

-- CROSS JOIN(중요도 낮음)
-- 두 가지 방법으로 표현가능
SELECT *
FROM testA
    CROSS JOIN testB

SELECT *
FROM testA, testB
-- 3 * 3 = 9개의 데이터가 나오게 된다.(아래참고)

USE BaseballData

SELECT *
FROM players
ORDER BY playerID
SELECT *
FROM salaries
ORDER BY playerID

-- INNER JOIN(중요도 높음)
-- 두 개의 테이블을 가로로 결합, 결합 기준을 ON으로
SELECT *
FROM players AS p
    INNER JOIN salaries AS s
    ON p.playerID = s.playerID

-- playerID가 players, salaries양쪽에 다 있고 일치하는 애들의 결합

-- OUTER JOIN
-- LEFT, RIGHT - 어느 한쪽에만 존재하는 데이터의 정책

SELECT *
FROM players AS p
    LEFT JOIN salaries AS s
    ON p.playerID = s.playerID
-- playerID가 왼쪽(players)에 있으면 무조건 표시
-- 오른쪽(salaries)에 있으면 오른쪽 정보는 NULL로 채움

About Taehyung Kim

안녕하세요? 8년차 현업 C++ 개발자 김태형이라고 합니다. 😁 C/C++을 사랑하며 다양한 사람과의 협업을 즐깁니다. ☕ 꾸준한 자기개발을 미덕이라 생각하며 노력중이며, 제가 얻은 지식을 홈페이지에 정리 중입니다. 좀 더 상세한 제 이력서 혹은 Private 프로젝트 접근 권한을 원하신다면 메일주세요. 😎

Star
Useful Links