안녕하세요
데이터 업데이트쿼리의 에러때문에 질문드립니다.
지금 작성한 쿼리는 다음과같습니다.
update (select a.no , a.st, a.dt, ,a.cdt from tb a, tb b , tb c where 1=1 and a,no = b.no(+) and a.no = c.no(+) and a.st='55' and a,cdt is not null and c.no is null and a.no like 'shop%' ) set st='82';
여기서 a와 c에 st컬럼이 둘다 존재하여 발생하는것같은데 해결이 되질않습니다...
뷰 업데이트가 아예 불가능한 것은 아니고
몇가지 제약사항을 만족한다면 뷰 업데이트도 가능합니다.
http://gurubee.net/article/79308
위의 경우엔 b 를 왜 조인하는지 이유를 모르겠고? --> 조인 제거 필요
a 와 c 와의 관계가 1:1 또는 다:1 이면 업데이트 가능합니다.
조인 키인 c.no 에 PK 가 설정되어 있어야 합니다.
그런데?? 다시 보니 쿼리가 이상하네요? a, b, c 가 같은 테이블인가요?
merge into tb a using (select a.no ,a.st ,a.dt ,a.ct from tb a , tb b , tb c where 1=1 and a,no = b.no(+) and a.no = c.no(+) and a.st='55' and a,cdt is not null and c.no is null and b.no is not null and a.no like 'shop%') b on (a.no = b.no) when matched then update set st='82';
이렇게 해결했습니다.
우리집 아찌님 ,마농님 답변 감사드립니다.
중간에 b조건을 뺴먹어서 마농님께 혼란을 드린것같네요
a b c 각기 다른테이블이었습니다.