본문 바로가기
IT/ORACLE

[ORACLE] 특정 테이블 CODE 로 다른 테이블에서 명칭 가져오기

by 쫄보에서고수까지 2020. 2. 18.
반응형


[ 특정 테이블 코드로 다른 테이블에서 명칭 가져오는 여러가지 방법 ]



- 매장정보(MAEJANG) 테이블 스펙 - 

 회사번호

COMPANY_CODE (PK)

 매장번호

SHOP_CODE        (PK)

 매장명SHOP_NAME 

 사업자등록번호

CORP_CODE

 대표이사 직원번호

CEO_NUMBER 



- 직원정보(MEMBER) 테이블 스펙 -

 회사번호

COMPANY_CODE     (PK)

 매장번호

 SHOP_CODE          (PK)

 직원번호

 MEMBER_NUMBER  (PK)

 이름

 MEMBER_NAME



ex) A 회사에 A 매장의 대표이사 이름을 출력하라.


SELECT   B.MEMBER_NAME   AS 대표이사이름

FROM     MAEJANG A

LEFT OUTER JOIN MEMBER B 

ON    A.COMPANY_CODE = B.COMPANY_CODE

AND  A.SHOP_CODE = B.SHOP_CODE

AND  A.CEO_NUMBER = B.MEMBER_NUMBER

WHERE 

A.COMPANY_CODE = '해당회사번호'

A.SHOP_CODE = '해당매장번호'



MAEJANG 이라는 매장정보 테이블에는 

대표이사 직원번호는 있지만 대표이사 이름이 없다고 가정한다.


대표이사 이름을 알기위해선 직원정보가 들어있는 테이블에서 직원번호를 매칭하여 가져와야 한다.


각 매장의 대표이사 직원번호는 1번이라고 가정하였을때 


직원정보 테이블에 저장된 데이터 중 

같은 회사 A.COMPANY_CODE = B.COMPANY_CODE

같은 매장 A.SHOP_CODE = B.SHOP_CODE

같은 직원번호 A.CEO_NUMBER = B.MEMBER_NUMBER


조건으로 JOIN 하면 B.MEMBER_NAME 으로 가져올 수 있다.


- 2번째 방법 - 

SELECT ( SELECT MEMBER_NAME 

            FROM MEMBER B 

            WHERE A.COMPANY_CODE = B.COMPANY_CODE 

            AND    A.SHOP_CODE = B.SHOP_CODE

           ) AS MEMBER_NAME

FROM MAEJANG A 

WHERE  A.COMPANY_CODE = '해당회사번호'

AND     A.SHOP_CODE = '해당매장번호'




반응형
LIST

댓글