반응형
# 배경
SQL문 update할 때 where절에 서브쿼리를 했다. 그런데 에러 메시지가 나타났다.
# 에러메시지
Error Code: 1093. You can't specify target table 's' for update in FROM clause
# 문제의 SQL문
update sell s set s.date='20220601'
where s.id in (select a.id from
review r inner join sell a on r.application_id = a.id
where r.member_id in (2, 5, 6, 7));
update 할때 테이블를 서브쿼리로 사용하여 문제가 생겼다.
# 해결 방안
서브쿼리로 만든 데이터를 임시 테이블을 만들어서 조건을 적었다.
update sell s
set s.date='20220601'
where s.id in (select id from ((select a.id from
review r inner join sell a on r.application_id = a.id
where r.member_id in (2, 5, 6, 7)) tmp_table);
반응형
'Study > Mysql' 카테고리의 다른 글
[Mysql] 타임존 확인하는 방법 (0) | 2022.09.29 |
---|---|
[Mysql] 특정 id를 배열로 해서 select문 만들기 (0) | 2022.08.31 |
[MySql] string를 date 타입으로 변경하는 방법 (0) | 2022.06.02 |
[MySql] 컬럼 안에 있는 문자열을 구분자로 자르기 (0) | 2022.04.15 |
[Mysql] mysql workbench(워크벤치)에서 ERD 만들기 (0) | 2022.02.10 |