본문 바로가기
SQL/문제풀이

LeetCode 175. Combine Two Tables 오라클 풀이글

by wakestand 2020. 6. 8.
반응형

 

Combine Two Tables - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

LeetCode 175. Combine Two Tables 

문제는 Person, Address 테이블을 가지고 조회하는데

두 테이블을 합쳐서 가져와야 하며

Person 테이블은 반드시 PersonId 값이 있어야 하지만

Address 테이블은 합쳤을 경우 값이 없어도 된다

 

해당 문제는 Person, Address 두 테이블을

Person 테이블을 기준으로 JOIN한 뒤에

값을 가져오는 문제인데

 

두 테이블에 모두 PersionId 컬럼이 있고

Person 테이블에서 PersonId가 PK이므로

이걸 이용해 JOIN 시켜주면 되겠다

 

JOIN은 오라클 조인, ANSI 조인이 있으며

방법을 모를 시에는

아래 글을 참고하고 풀어주면 되겠다

 

오라클 JOIN 예제 및 사용방법

먼저 조인(JOIN)이란 두 테이블의 결과를 합쳐주는 것을 말한다 위 스크린샷을 보면 TB1과 TB2를 만들고 값을 넣어줬는데 JOIN을 통해 원하는 조건으로 각 테이블을 합친 결과를 가져올 수 있다는 얘

wakestand.tistory.com

 

 

INNER JOIN, OUTER JOIN(LEFT, RIGHT, FULL) 예제부터 차이까지

여기 NAME과, AGE 형태의 값을 받는 테이블 TB1, TB2가 있는데 TB1에는 4줄의 값을 TB2에는 3줄의 값을 삽입했다 이 두 테이블을 이용해 INNER JOIN과 OUTER JOIN의 예제 및 차이점을 알아보자 1. INNER JOIN IN..

wakestand.tistory.com

풀이는 아래와 같다

 

먼저 오라클 JOIN을 사용할 경우에는

값이 없어도 되는 테이블에

(+)를 붙여주게 되는데

 

WHERE 테이블 = 테이블(+)

이런 식으로 사용하면 되겠다

 

다음으로는 ANSI JOIN을 사용할 경우인데

어느 테이블을 기준으로 합칠 것인지에 따라

LEFT, RIGHT OUTER JOIN을 사용하며

ON 테이블.컬럼 = 테이블.컬럼

으로 WHERE을 사용하지 않고

JOIN을 하게 된다

 

마지막으로 풀이에 사용한 코드는

아래를 참고해주면 된다

 

-- ORACLE JOIN을 사용할 경우
SELECT A.FIRSTNAME, A.LASTNAME, B.CITY, B.STATE
  FROM PERSON A, ADDRESS B
 WHERE A.PERSONID = B.PERSONID(+)
    
-- ANSI JOIN을 사용할 경우
SELECT A.FIRSTNAME, A.LASTNAME, B.CITY, B.STATE
  FROM PERSON A LEFT OUTER JOIN ADDRESS B
    ON A.PERSONID = B.PERSONID
반응형

댓글