Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

jeongwon

[Oracle] SQL SELECT 문의 활용 - JOIN 본문

DataBase

[Oracle] SQL SELECT 문의 활용 - JOIN

jeongwon_ 2022. 5. 26. 20:59

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