is specified twice, both as a target for 'UPDATE' and as a separate source for data


특정 테이블에 내용을 조회해서 업데이트를 하고자 한다.


UPDATE Table_name

SET    column_name = ( SELECT Table_name FROM column_name WHERE column_name = 'data')

where column_name = 'data';


이렇게 할 경우 다음과 가이 오류가 나온다.
쿼리의 오류 (1093): Table '테이블명' is specified twice, both as a target for 'UPDATE' and as a separate source for data

아래와 같이 별칭을 주어 회피처리 한다.


UPDATE Table_name
SET    column_name = ( select * from (SELECT Table_name FROM column_name WHERE column_name = 'data' limit 1) t)
where column_name = 'data';


+ Recent posts