안녕하세요..
쿼리공부하는 중에 궁금한 것이 생겨서 질문드립니다.
A Table
C1(P) C2 C3
1 / A1 / A2
B Table
C1(P) C2
A1 / Korea
A2 / America
이 상태에서
C1(P) C2 C3 C4 C5
1 / A1 / A2 / Korea / America
이렇게 한 줄로 가져오고 싶습니다.
Select C4. C5 from A,B WHERE A.C1 = B.C1 OR A.C3 = B.C1
하면 두개로 표시되고 OR을 AND로 바꾸면 0인데 어떻게하면 가능할까요?
고수분들의 지도 부탁드립니다.
Comment 3
-
이리
2022.09.06 08:23
-
지영아빠
2022.09.06 09:27
말씀대로 2번조인, subquery, cross apply을 추천합니다.
그리고 이런 것도...
with t1 as (
select 1 as c1,'A1' as c2 , 'A2' as C3
)
, t2 as (
select 'A1' as C2, 'korea' as C3 union all
select 'A2' as C2, 'America' as C3
)
select
a.c1 , a.c2, a.c3,
max(case when a.c2 = b.c2 then b.c3 else null end) as c4 ,
max(case when a.c3 = b.c2 then b.c3 else null end) as c5
from t1 a
cross join t2 b
group by
a.c1 , a.c2, a.c3
-
cheezelove
2022.09.06 19:58
와우 두 분 다 정말 감사합니다.
큰 배움 얻었습니다.
결과만 보자면 B TABLE을 2번 JOIN 하시면 됩니다.