다른 테이블과 조인 걸고 삭제[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문에 다른 테이블과 조인을 걸어서 만든 조건으로 삭제 할 수가 있게 된다.

+ Recent posts