반응형
※ 문제

※ 코드
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개가 만들어지게 됩니다.

그렇기 때문에 1번 방법의 경우 item_id를 명시적으로 언급해주어야 합니다.
2번 방법 같은 경우엔 특별한 문법인 using 문법입니다. 뒤에 괄호와 그 안에 key column을 적어주면 됩니다. (괄호 필수)
다만 ORACLE의 경우엔 using 문법이 없음을 참고하시길 바랍니다!
반응형
'DBMS' 카테고리의 다른 글
| [프로그래머스 SQL] Lv. 2 루시와 엘라 찾기 (0) | 2025.06.13 |
|---|---|
| [프로그래머스 SQL] Lv. 2 상품 별 오프라인 매출 구하기 (0) | 2025.06.13 |
| [프로그래머스 SQL] Lv. 2 가격대 별 상품 개수 구하기 (0) | 2025.06.12 |
| [프로그래머스 SQL] Lv. 2 연도 별 평균 미세먼지 농도 조회하기 (0) | 2025.06.10 |
| [프로그래머스 SQL] Lv. 2 성분으로 구분한 아이스크림 총 주문량 (0) | 2025.06.10 |