SELECT A.KEY, A.NAME, B.STAT
FROM A
LEFT JOIN B
ON A.KEY = B.KEY
( B에 A의 키와 일치하는 데이터가 두개 있을경우 "상태"가 "등록"인 데이터를 뽑고 싶습니다.)
TABLE A TABLE B
KEY NAME KEY STAT
1 민수 1 등록
2 철수 1 해지
3 창수
결과
KEY NAME STAT
1 민수 등록
2 철수 NULL
3 창수 NULL
위처럼 B테이블에 A테이블에 해당하는 데이터가 두개인 경우 위와 같이 결과를 뽑고싶습니다.ㅠㅠ
질문이 미숙하여 죄송합니다..
다시 정리하였습니다..!
B테이블에는 A테이블과 매칭되는 데이터가 무수히 있을 수 있으며, 상태 컬럼이 KEY는 아니지만 "등록"인 데이터는 하나 뿐입니다.
"해지" 상태는 여러 건 있을 수 있구요.
상태는 현재는 "해지", "등록" 두개이지만 추 후 두개 코드가 더 추가될 예정입니다.
해당 KEY의 등록 데이터가 존재할 경우, 신규등록 시 기존 등록 데이터는 상태를 "해지"로 업데이트하고, 신규등록 데이터를 INSERT시킵니다.
해지 상태인 데이터만 있을 수도 있습니다.
이 경우는 최신 데이터를 불러오고싶습니다.
등록/해지 상태인 데이터가 있다면 등록상태인 데이터를 우선으로 불러오고 싶습니다.
TABLE A TABLE B
CODE(PK) PART(PK) NUMB(PK) NAME CODE(PK) PART(PK) NUMB(PK) BANK(PK) B_NUMB(PK) STAT INSERT_DATE
1 1 101 민수 1 1 101 001 123456 해지 2018-11-01
1 1 102 철수 1 1 101 002 546213 해지 2018-11-02
1 1 103 창수 1 1 101 003 456125 등록 2018-11-03
결과
CODE PART NUMB NAME BANK STAT
1 1 101 민수 003 등록
1 1 102 철수 NULL NULL
1 1 103 창수 NULL NULL