본문 바로가기
MySql

MySQL 하나의 쿼리로 두 테이블에서 삭제

by 베이스 공부 2021. 1. 30.
반응형

MySQL에 두 개의 테이블이 있습니다.

#messages table  : 
messageid
messagetitle 
.
.

#usersmessages table 
usersmessageid 
messageid
userid
.
.

이제 메시지 테이블에서 삭제하려면 괜찮습니다. 그러나 메시지 ID로 메시지를 삭제하면 사용자 메시지에 레코드가 여전히 존재하며이 두 테이블에서 한 번에 삭제해야합니다.

다음 쿼리를 사용했습니다.

DELETE FROM messages LEFT JOIN usersmessages USING(messageid) WHERE messageid='1' ; 

그런 다음 테스트

   DELETE FROM messages , usersmessages 
   WHERE messages.messageid = usersmessages.messageid 
   and messageid='1' ; 

그러나이 두 쿼리는이 작업을 수행하지 않습니다.

 

해결 방법

 

세미콜론으로 구분할 수 없습니까?

Delete from messages where messageid = '1';
Delete from usersmessages where messageid = '1'

또는

아래와 같이 INNER JOIN 을 사용하세요.

DELETE messages , usersmessages  FROM messages  INNER JOIN usersmessages  
WHERE messages.messageid= usersmessages.messageid and messages.messageid = '1'

 

참조 페이지 https://stackoverflow.com/questions/1233451

 

 

반응형

댓글