데이터 & AI/MySQL

[MySQL] JOIN 함수, Foreign Key

뭉실뭉실뜬구름 2023. 4. 25. 10:59
728x90

JOIN 함수:

JOIN 함수는 두 테이블의 값들을 하나로 합쳐주는 역할을 한다. 예를 들어 item이라는 테이블과 stock이라는 테이블이 있는 상황에서 item 테이블에 있는 id 컬럼과 stock 테이블에 있는 item_id 컬럼을 기준으로 조인 하고 싶으면 아래와 같은 코드로 작성하면 된다.

item 테이블
stock 테이블

 

SELECT
	item.id,
    item.name,
    stock.item_id,
    stock.inventory_count
FROM item RIGHT OUTER JOIN stock
ON item.id = stock.item_id;

item 테이블로부터 stock테이블을 기준으로 id와 item_id가 같은 컬럼의 SELECT 안에 있는 컬럼들을 추출한다.

 

RIGHT ,LEFT JOIN: 말 그대로 오른쪽을 기준으로 왼쪽을 기준으로 합친다는 것이다.

INNER : 두 테이블의 공통된 컬럼을 기준으로 합친다는 것이다.

 

 

ALISA 붙혀서 간단하게 코드 짜기:

SELECT 
	i.id,
	i.name,
    s.item_id,
    s.inventory_count
FROM item AS i RIGHT OUTER JOIN stock AS s
ON i.id = s.item_id;

FOREIGN KEY:

stock 테이블에 있는 item_id 컬럼을 통해서 item테이블의 id컬럼을 참고했다. 이처럼 다른 테이블의 특정 row를 식별할 수 있게 해주는 컬럼을 FOREIGN KEY라고 한다. 여기서 참조를 당하는 테이블을 부모 테이블(item) 참조를 하는 테이블을 자식테이블(stock)이라고 한다.

 

*USING:

만약 조인되는 기준 컬럼의 이름이 서로 같다면 ON대신 USING()으로 쉽게 나타낼 수 있다.

SELECT 
	old.id AS old_id,
    old.name,
    new.id,
    new.name
FROM item AS old LEFT OUTER JOIN item_new AS new
USING(id);

 

 

 

 

 

 

 

728x90