UPDATE JOIN 을 이용한 다중행 업데이트 하기
다른 테이블을 기준으로 해서 데이블을 업데이트 할 때가 있다.
이럴 때 조인문을 이용해서 UPDATE 하게 되는데 아래와 같이 사용하면 된다.
UPDATE [업데이트할 테이블명2] A INNER JOIN [테이블명-2] B
ON A.[조인할 컬럼명] = B.[조인할 컬럼명]
SET A.[변경할 컬럼명] = 변경할값
( WHERE 절 )
예) UPDATE JOIN
UPDATE Member AS A INNER JOIN Member_Data AS B
ON A.UserID= B.UserID
SET A.STATUS_CD = B.STATUS_CD
WHERE B.STATUS_CD <> '300'
DELETE FROM JOIN
다른 테이블의 값을 기초로 테이블의 값을 다중으로 삭제해야 하는 경우가 있다.
이럴 때 위의 UPDATE JOIN 문과 비슷하게 사용하면 될 거 같으나 그렇게 되지 않느다.
-- 아래와 하면 될 거 같다.. 그런데 안된다.
DELETE FROM
[Table-A]
INNER JOIN
[Table-B] ON Table-A.ID = Table-B.ID
WHERE
Table-B.NAME= '홍길동'
- 아래와 같이 해야 된다.
- 지워지는 데이타는 Member Table 에 있는 데이타임.
DELETE FROM
[Table-A] Using [Table-A]
INNER JOIN
[Table-B] ON Table-A.ID = Table-B.ID
WHERE
Table-B.NAME= '홍길동'
예) DELETE USING JOIN
DELETE FROM Member USING Member
INNER JOIN Member_ERROR
ON Member.UserID= Member_ERROR.UserID
WHERE Member_ERROR.Member_Status = '200' ;
- DELETE와 FROM 절 사이에 삭제할 테이블 명시 : test1(t1)
DELETE t1
FROM test1 as t1 INNER JOIN test2 t2
WHERE t1.id=t2.id
;
- FROM과 USING 절 사이에 삭제할 테이블 명시 : test1(t1)
DELETE
FROM t1
USING test1 as t1 INNER JOIN test2 t2
WHERE t1.id=t2.id
;
참고 : http://dev.mysql.com/doc/refman/5.0/en/delete.html
http://intomysql.blogspot.kr/2011/01/join-delete-multiple-table-delete.html
http://moonlighting.tistory.com/99
'MySQL' 카테고리의 다른 글
리눅스에 mysql 설치 후 원격으로 로그인 안되는 문제 해결 (0) | 2014.07.20 |
---|---|
mysql의 윈도우에서의 my.ini 파일 위치 (2) | 2014.06.27 |
MySQL Event 확인하기 (1) | 2014.05.23 |
mysql 이벤트 스케쥴러 사용하기 (2) | 2014.05.23 |
MySQL Fetch Cursor 문 사용방법 (0) | 2014.05.17 |