🙇‍♀️JOIN

🪐CROSS JOIN

  • JOIN(결합)
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');
  • CROSS JOIN (교차 결합)
  • 데이터가 많아 지면 부담됨
  • N * N 개의 데이터
SELECT *
FROM testA
	CROSS JOIN testB

SELECT *
FROM testA, testB;

🪐INNER JOIN

  • INNER JOIN (두 개의 테이블을 가로로 결합 + 결합 기준을 ON으로)
  • playerID가 players, salaries 양쪽에 다 있고 일치하는 애들을 결합

SELECT * FROM players AS p INNER JOIN salaries AS s ON p.playerID = s.playerID

OUTER JOIN (외부 결합)

  • LEFT / RIGHT
  • 어느 한쪽에만 존재하는 데이터 -> 정책?

  • LEFT JOIN (두 개의 테이블을 가로로 결합 + 결합 기준을 ON으로)
  • playerID가 왼쪽(Left)에 있으면 무조건 표시, 오른쪽(salaries)에 없으면 오른쪽 정보는 NULL로 채움
    SELECT *
    FROM players AS p
      LEFT JOIN salaries AS s
      ON p.playerID = s.playerID
    
  • RIGHT JOIN (두 개의 테이블을 가로로 결합 + 결합 기준을 ON으로)
  • playerID가 오른쪽(Right)에 있으면 무조건 표시, 왼쪽(players)에 없으면 왼쪽 정보는 NULL로 채움
    SELECT *
    FROM players AS p
      RIGHT JOIN salaries AS s
      ON p.playerID = s.playerID
    

태그:

카테고리:

업데이트: