기록장
[MYSQL]JOIN -1 / as 본문
외부 조인
외부 조인은 한쪽에만 데이터가 있어도 결과 값이 나온다
(내부 조인은 두 테이블 모두)
외부 조인의 기본
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문의 전체 길이를 줄여서 가독성을 높이기 위한 용도,
같은 이름 이라면 구분용
'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 |