기록장

[MYSQL]JOIN -1 / as 본문

Programming/SQL

[MYSQL]JOIN -1 / as

HJJJJJ 2022. 12. 4. 18:10
728x90

외부 조인

외부 조인은 한쪽에만 데이터가 있어도 결과 값이 나온다

(내부 조인은 두 테이블 모두)

 

외부 조인의 기본

left outer join 왼쪽 테이블의 내용을 모두 출력한다라고 생각하면 쉽다

 

 

JOIN

여러 테이블을 합쳐서 하나로 보이게 만드는걸 JOIN이라고 함

 

SELECT 
	intem.id,
    intem,name,
    stock.item_id,
    stock.inventory_count
FROM item LEFT OUT JOIN stock
ON item.id = stock.item_id

1 .

 LEFT OUT JOIN은 

왼쪽에 있는 item 테이블을 기준으로 

 stock를 합치라는 소리임 

 

어떻게 합치냐면

 

기준은 ON으로 시작하는 구문에 있음 

두 테이블을 합칠 때 item 테이블의 id컬럼의 값과 

stop 테이블의 item_id 값을 비교해서

서로 값이 같은 로우끼리 가로 방향으로 연결하라는 뜻임

 

2. select 문 부분은 

조인을 해서 생성된 새로운 테이블에서 

item 테이블의 id, name 컬럼

 

stcok테이블의 item_id컬럼과 inventory_count 컬럼을 

보여달라는 뜻 

 

-> right outer join은 

오른쪽 기준

 

 

조인할 때 테이블에 alias 붙이기

as를 사용 함

조인할 때는 as를 경우를 붙이는 경우가 많다

조인하는 sql은 길이가 긴편이라 테이블 이름까지 다 써주면

sql문 길이가 너무 길어지기 때문

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;

컬럼의 alias와 테이블의 alias

QL 문 안에서 우리는

  • 컬럼 이름에도 alias를 붙일 수 있고,
  • 테이블 이름에도 alias를 붙일 수 있음

그리고 둘다 원래 이름 뒤에 AS를 쓰거나, 스페이스 하나를 띄우고 그 뒤에 alias를 쓰면 된다는 점이 같은데

용도 차이가 있음

 

컬럼- 실제로 우리에게 as로 변환되어서 보여지게 하기 위한 용도

테이블-조회 결과용이 아니라 sql문의 전체 길이를 줄여서 가독성을 높이기 위한 용도, 

같은 이름 이라면 구분용

728x90

'Programming > SQL' 카테고리의 다른 글

카테고리 별 상품 개수 구하기  (0) 2023.07.26
특정 옵션이 포함된 자동차 리스트 구하기  (0) 2023.07.25
[Oracle] TO_CHAR함수 사용법  (0) 2022.12.02
[Oracle] NVL()  (0) 2022.11.26
LIKE  (0) 2022.11.24
Comments