다른 테이블과 조인 걸고 삭제[delete] 하기
가끔씩 delete 구문 조건문에 다른 테이블에서 가져온 정보를 넣고 싶을때가 있다.
외래키가 적용이 되어있기 때문에 A라는 테이블의 로우를 삭제 하기 전에 B라는 테이블에 있는
A와 외래키 관계에 있는 정보를 먼저 삭제 한 후 A테이블의 데이터를 삭제 해야 하는 경우가
그런 경우일 것이다.
다른 테이블과 조인하여 조건을 걸고 데이터를 삭제 하는 방법을 알아보자
1. 일단 삭제 하고자 하는 delete문을 만들어 보자
1 2 3 | DELETE FROM 테이블AA | cs |
2. 삭제 하고자 하는 내용을 뽑아오는 selete문을 만들어 보자
1 2 3 4 5 6 7 8 9 10 | SELECT aa.* FROM 테이블AA aa INNER JOIN 테이블BB bb ON bb.MENU_ID = aa.MENU_ID WHERE bb.MENU_ID= '조건' | cs |
3. 1번과 2번을 합체!
1 2 3 4 5 6 7 8 9 10 | DELTE FROM 테이블AA FROM 테이블AA aa INNER JOIN 테이블BB bb ON bb.MENU_ID = aa.MENU_ID WHERE bb.MENU_ID = '조건' | cs |
from 이 두번 나와서 이상해 보이지만 저게 맞다.
이렇게 하면 delete문에 다른 테이블과 조인을 걸어서 만든 조건으로 삭제 할 수가 있게 된다.
'Yame Programmer > SQL' 카테고리의 다른 글
[MSSQL] 값이 존재하는지 확인 후 update insert [EXISTS] 활용 (0) | 2016.08.12 |
---|---|
[Mybatis] 비교연산자 부등호 >,< 안될때 (11) | 2016.07.19 |
[mysql,MariaDB] 150 mysql foreign key constraint is incorrectly formed (0) | 2016.07.18 |
[Mysql] 구분자를 이용해 값을 로우로 출력하기 (0) | 2016.07.14 |
[MySql,MariaDB] Like in 같이 쓰기 해결책 REGEXP (8) | 2016.07.13 |