select no,cd from A
no | cd |
1 | a |
1 | b |
1 | c |
1 | d |
1 | e |
2 | a |
2 | c |
2 | e |
3 | a |
3 | e |
A 테이블에 이런식으로 데이터가 있고
nm | no | tel | tp | |
철수 | 1 | a@b.com | 1577-1577 | S |
영희 | 2 | b@c.com | 02-1234-1234 | S |
영철 | 3 | c@d.com | 02-1234-5678 | S |
B테이블에 이런식으로 있을떄
A테이블에 cd 5가지 값인 'a' , 'b', 'c', 'd', 'e' 에 대한 row가 하나씩 있어야하는데
2,랑 3번에 없어서 없는만큼 insert를 해주고 싶습니다
지금은
select no from A where no in (select no from B)
group by no
having count(no) <5;
해서 나온 no 값을 A테이블에서 검색해서
select cd from A where no=1
minus
select cd from A where no=2
이렇게 no 를 2 ,3 이런 식으로 빼서 나온 결과의 cd 를 하나씩 아래처럼 없는거 그냥 입력해서 채웠는데
insert into A(no,cd)
select ('2','b') from dual
union all
select ('2','d') from dual
.
.
.
혹시 select 해서 insert 할 수 있는 방법이 있을까요
merge into를 사용하려고 했는데 마땅한 방법이 떠오르지 않아서요 ㅠㅠ