UPDATE member SET name='KIM' where pk_id=(SELECT pk_id where email='aaa@abc.com')

이렇게 하면 안된다. -_-;

테이블에서 자기 자신을 조건으로 보고 있기 때문에 update문을 실행할 수 없단다..

그래서 서브쿼리로 조건문에 들어갈 값을 감싸주자.


UPDATE member SET name='KIM' where pk_id=(SELECT * FROM (SELECT pk_id where email='aaa@abc.com'))

이렇게 해도 안된다. ㅠㅠ

SQL Error (1248): Every derived table must have its own alias

이런 이유다. 그러므로 서브쿼리에 alias를 주자

UPDATE member SET name='KIM' where pk_id=(SELECT * FROM (SELECT pk_id where email='aaa@abc.com') AS X)

이제 된다. 흐흐