jeongwon
[Oracle] SQL SELECT 문의 활용 - JOIN 본문
JOIN을 할 때는 기준을 꼭 제시해줘야 한다.
select * from topic --topic 테이블을
LEFT JOIN author --왼쪽으로 하여 author 테이블을 붙임
ON topic.author_id=author.id; --topic 테이블의 author_id과 id가 같다는 것을 기준으로
결과:
AUTHOR_ID 열(컬럼)까지가 topic 테이블, 나머지가 author 테이블이다.
중복되는 id 열을 보기 좋게 가져와 보자. id는 어떤 테이블의 id인지 구분이 쉽도록 '별명' 으로 TOPIC_ID 를 지정해준다.
SELECT topic.id TOPIC_ID, title, name
-- id, title, name 컬럼을 가져오되 id를 TOPIC_ID 라는 이름으로 출력
FROM topic LEFT JOIN author
ON topic.author_id=author.id;
별명 지정은 topic.id AS TOPIC_ID 가 정석인데, AS 는 생략 가능하다.
질의문에서 반복되는 테이블의 이름을 T와 A로 각각 변경해 보자.
SELECT T.id TOPIC_ID, --topic 테이블의 이름을 T로 통일
title,
name
FROM topic T
LEFT JOIN author A --author 테이블의 이름을 A로 통일
ON T.author_id=A.id;
동일하게 출력된다.
조금 더 구체적으로, 특정 값을 기준으로 원하는 데이터를 가져와 보자.
SELECT T.id TOPIC_ID,
title,
name
FROM topic T
LEFT JOIN author A
ON T.author_id=A.id
WHERE --topic테이블의 id값이 1인 행
T.id=1;
출처:
표를 분해하고, 조립하기 - JOIN - 생활코딩
수업소개 하나의 거대한 표는 여러가지 문제를 가지고 있습니다. 이런 문제를 해결하기 위해서는 주제에 따라서 표를 분해해야 합니다. 또 분해한 표를 필요에 따라서 조립해서 거대한 표처럼
opentutorials.org
'DataBase' 카테고리의 다른 글
[데이터 모델링] 논리적 데이터 모델링 (0) | 2022.05.27 |
---|---|
[데이터 모델링] 개요, 개념적 데이터모델링 (0) | 2022.05.27 |
[Oracle] 서버&클라이언트, SQL Developer, 스키마 (0) | 2022.05.25 |
[Oracle] Primary key, sequence (0) | 2022.05.25 |
[Oracle] SQL, 데이터 Create, Read, Update, Delete (0) | 2022.05.25 |