본문 바로가기
DBMS

[프로그래머스 SQL] Lv. 2 ROOT 아이템 구하기

by floral1215 2025. 6. 13.
반응형

※ 문제

 

※ 코드

select i.item_id, item_name
from item_info i join item_tree t on i.item_id = t.item_id
where parent_item_id is null
order by i.item_id;
select item_id, item_name
from item_info i join item_tree t using (item_id)
where parent_item_id is null
order by item_id;

※ 풀이

해당 문제는 2가지 방법으로 풀 수 있습니다.

 

1번 - 일반적인 join ~ on ~ 문법으로 풀이 후 column을 explicit하게 표시하는 방법

2번 - using (~) 문법을 사용하는 방법

 

1번 방법은 column name을 명시적으로 적어주어야 하는 이유가 있습니다.

join ~ on ~ 으로 테이블을 합칠 경우엔 key column인 item_id가 중복되어 2개가 만들어지게 됩니다.

ITEM_ID COLUMN이 중복됨

그렇기 때문에 1번 방법의 경우 item_id를 명시적으로 언급해주어야 합니다.

 

2번 방법 같은 경우엔 특별한 문법인 using 문법입니다. 뒤에 괄호와 그 안에 key column을 적어주면 됩니다. (괄호 필수)

다만 ORACLE의 경우엔 using 문법이 없음을 참고하시길 바랍니다!

반응형