하위 테이블에 일치하는 데이터가 있으면 셀렉트하는 쿼리문 질문요 0 3 903

by 지구촌아이 [SQL Query] [2017.06.20 11:34:40]


T1테이블에

SEQ, TITLE이 있고

1, 제목

2, 제목2

3, 제목3

자식테이블인 T2 테이블이

PARENT_SEQ, CODE

1, A

1,B

2,A

2,C

3,D

 

이런관계에 있을때

T2테이블에 CODE가 A랑 C를 가지고있는 T1의 데이터를 가져오고 싶습니다. 어떤식으로 짜야하나요?

by 랑에1 [2017.06.20 12:55:11]
SELECT SEQ, TITLE
FROM T1
WHERE SEQ IN (SELECT PARENT_SEQ FROM T2 WHERE CODE IN ('A', 'C'))

 


by jkson [2017.06.20 14:42:42]

언어 능력이 부족한 1인이 질문드립니다.

A랑 C를 가지고 있다는 게 그 중 하나만 가지고 있어도 된다는 건가요~

아니면 A랑 C를 동시에 가지고 있어야 한다는 건가요?


by 마농 [2017.06.20 22:16:37]
WITH t1 AS
(
SELECT 1 seq, '제목' title FROM dual
UNION ALL SELECT 2, '제목2' FROM dual
UNION ALL SELECT 3, '제목3' FROM dual
)
, t2 AS
(
SELECT 1 parent_seq, 'A' code FROM dual
UNION ALL SELECT 1, 'B' FROM dual
UNION ALL SELECT 2, 'A' FROM dual
UNION ALL SELECT 2, 'C' FROM dual
UNION ALL SELECT 3, 'D' FROM dual
)
SELECT *
  FROM t1
 WHERE seq IN (SELECT parent_seq
                 FROM t2
                WHERE code IN ('A', 'C')
                GROUP BY parent_seq
               HAVING MIN(code) != MAX(code)
--             HAVING COUNT(*) = 2
               )
;

 

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