쿼리문 도움부탁드립니다. 0 2 1,234

by 모던 쿼리 [2012.03.13 15:35:36]



오라클을 이제 하고 있는 초보입니다. 도움부탁드립니다.

테이블이 아래와 같이 두개가 있습니다.
t2 에 있는 값만 t1 에서 불러오고 싶은데, 필드가 하나라면 f1 in () 으로 불러오면 되지만 필드가 여러개다보니 어떻게 해야될지 모르겠습니다.

그래서 현재는 그냥 t2 에 데이터가 insert 되면 쿼리문을 아래처럼 수동으로 변경하고 있습니다.

select * from t1 where
(f1 = '1010' and f2 = '2010' and f3 = '1001')
or (f1 = '3010' and f2 = '1000' and f3 = '40')

질문은 t2 에 있는 데이터만 가져오고 싶은데 t2 자체에 쿼리를 날리면 안되고 t2 테이블을 참조하여 t1 에서 데이터를 가져와야합니다.

도움부탁드립니다.

감사합니다.

t1
f1 f2 f3
1010 2010 1001
3010 1000 40
9020 1110 1040


t2
f1 f2 f3
1010 2010 1001
3010 1000 40
by 느훼훼 [2012.03.13 15:55:08]
질문이 정확히 이해가 되질 않네요.. 
제가 이해한대로 하게 되면 아래와 같습니다.

WITH T1 AS
(
SELECT '1010' AS F1, '2010' AS F2, '1001' AS F3 FROM DUAL
UNION ALL
SELECT '3010' AS F1, '1000' AS F2, '40'    AS F3 FROM DUAL
UNION ALL
SELECT '9020' AS F1, '1110' AS F2, '1040' AS F3 FROM DUAL
),
T2 AS
(
SELECT '1010' AS F1, '2010' AS F2, '1001' AS F3 FROM DUAL
UNION ALL
SELECT '3010' AS F1, '1000' AS F2, '40'    AS F3 FROM DUAL
)
SELECT A.*
  FROM T1 A
           , T2 B
 WHERE A.F1 = B.F1
      AND A.F2 = B.F2
      AND A.F3 = B.F3

by 마농 [2012.03.13 16:24:24]
SELECT *
  FROM t1
 WHERE (f1, f2, f3) IN (SELECT f1, f2, f3 FROM t2)
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입