DB 조인과 서브쿼리문 질문입니다. 0 4 710

by DB마스터하고싶다 [SQL Query] 서브쿼리 조인 1대1대입 변수사용 도와주십쇼 고수님들 [2020.05.03 15:27:27]


문제1번.png (26,225Bytes)
그림2.png (32,989Bytes)

이렇게 두 개의 쿼리문 문제가 있는데요.

저는 처음에 봤을 때 쉽게봐서 풀어보긴 했는데 생각보다 이거를 대입해서 하나하나 넣거나 조인과 쿼리문을 섞어서 써야 푼다고 생각하는데... 조인만 써서 푸는법이랑 쿼리문만 써서 푸는법 이건 도대체 어떤 방식으로 접근해서 풀어야 할지 도통 모르겠습니다. 도와주십시오. 고수님들 개발자님들.

by 생각 [2020.05.06 09:08:02]
WITH T1 AS (
SELECT '박지성' NM, '1' NO1, '2' NO2 FROM DUAL
UNION ALL
SELECT '손흥민' NM, '2' NO1, '3' NO2 FROM DUAL
UNION ALL
SELECT '차범근' NM, '3' NO1, '0' NO2 FROM DUAL
)
,T2 AS(
SELECT '1' NO, '부산' CITY FROM DUAL
UNION ALL
SELECT '2' NO, '서울' CITY FROM DUAL
UNION ALL
SELECT '3' NO, '울산' CITY FROM DUAL
)
SELECT NM
      ,REGEXP_SUBSTR(NO,'[^,]+',1,1) NO1
      ,REGEXP_SUBSTR(NO,'[^,]+',2,2) NO2
  FROM (
       SELECT T1.NM
             ,LISTAGG(T2.CITY,',') WITHIN GROUP (ORDER BY CITY) AS NO 
         FROM T1 
             ,T2
        WHERE T1.NO1 = T2.NO
           OR T1.NO2 = T2.NO
        GROUP BY T1.NM
);         

 


by DB마스터하고싶다 [2020.05.06 17:15:16]

by 생각님 감사합니다 ^^ 도움이 됐습니다.


by 마농 [2020.05.06 14:06:23]
WITH player AS
(
SELECT '박지성' nm, 1 no1, 2 no2 FROM dual
UNION ALL SELECT '손흥민', 2,   3  FROM dual
UNION ALL SELECT '차범근', 3, null FROM dual
)
, city AS
(
SELECT 1 no, '부산' city FROM dual
UNION ALL SELECT 2, '서울' FROM dual
UNION ALL SELECT 3, '울산' FROM dual
)
-- 1. 서브쿼리 사용
SELECT nm
     , (SELECT city FROM city WHERE no = a.no1) no1
     , (SELECT city FROM city WHERE no = a.no2) no2
  FROM player a
;
-- 2. 조인 사용
SELECT nm
     , c1.city no1
     , c2.city no2
  FROM player a
 INNER JOIN city c1
    ON c1.no = a.no1
  LEFT OUTER JOIN city c2
    ON c2.no = a.no2
;

 


by DB마스터하고싶다 [2020.05.06 17:14:52]

감사합니다. 마농개발자님! 실력 도움에 도움이 된것 같습니다. ^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입