2015. 9. 11. 16:34 IT/MySQL

mysql JOIN DELETE

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

JOIN DELETE (Multiple-table Delete)

두개의 테이블을 조인하여 UPDATE를 실행하는 것(JOIN UPDATE)과 같이,
두개의 테이블을 조인하여 그 결과 레코드를 삭제하는 것도 가능하다.

이를 JOIN DELETE 또는 Multiple-Table DELETE라고 하는데,
JOIN DELETE는 아래 두 가지 문법으로 작성할 수 있다.

  • DELETE와 FROM 절 사이에 삭제할 테이블 명시

    DELETE
     t1t2 
    FROM test1 t1 INNER JOIN test2 t2 INNER JOIN test3 t3
    WHERE t1.id=t2.id 
      AND t2.id=t3.id;

  • FROM과 USING 절 사이에 삭제할 테이블 명시
    DELETE 
    FROM t1t2 
      USING test1 t1 INNER JOIN test2 t2 INNER JOIN test3 t3
    WHERE t1.id=t2.id 
      AND t2.id=t3.id;

JOIN DELETE에서도 주의해야 할 사항이 있는데,
  • 조인 결과 레코드가 삭제되는 테이블이 어느 테이블인가 ?.
    • 첫번째 문법에서는 DELETE 키워드와 FROM 절 사이에 명시된 테이블의 레코드만 삭제한다.
    • 두번째 문법에서는 FROM 절과 USING 절 사이에 명시된 테이블의 레코드만 삭제한다.
    • 위의 두 예제에서는 t1(test1) 테이블과 t2(test2) 테이블의 레코드만 삭제하게 된다. t3(test3)의 레코드는 조인에만 참여하고 삭제되지는 않는다.
  • 테이블의 별명(Alias)는 어디에서 정의해야 하는가 ?.
    • 첫번째 문법에서는 FROM 절 이하에서 테이블의 별명(Alias)를 지정하며, 이 이외의 위치에서는 Alias를 지정할 수 없고, FROM 절에서 정의된 Alias를 사용만 해야 한다.
    • 두번째 문법에서는 USING 절 이하에서만 테이블의 별명(Alias)를 정의해야 한다.




'IT > MySQL' 카테고리의 다른 글

MySQL 커버링 인덱스  (0) 2015.10.16
MySQL 설치 및 권한 관리.  (0) 2015.10.01
MySQL DB 생성 및 사용자 추가, 권한 부여  (0) 2015.09.08
Mysql Join 속도 측정 및 개선  (0) 2015.07.22
mysql table 권한 관리  (0) 2015.07.09
Posted by 당양부부34

블로그 이미지
주요 토렌트를 블로깅하고 있습니다. 토렌트 순위 등은 다른 사이트를 찾아보세요. 주요 웹툰 순위도 게재했어요 경제를 좋아하는 일산의 행복한 프로그래머입니다.
당양부부34
Yesterday
Today
Total

달력

 « |  » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함