집 >데이터 베이스 >MySQL 튜토리얼 >JOIN을 사용하여 MySQL에서 관련 데이터를 계단식으로 삭제하는 방법은 무엇입니까?
MySQL에서 JOIN 삭제: 관련 데이터 삭제
관계형 데이터베이스에서는 일반적으로 마스터 데이터와 관련 데이터를 삭제해야 합니다. MySQL에서는 JOIN 문을 사용하여 계단식 삭제를 구현할 수 있습니다.
질문:
다음 테이블 구조를 고려하세요.
<code class="language-sql">CREATE TABLE clients ( client_id INT(11), PRIMARY KEY (client_id) ); CREATE TABLE projects ( project_id INT(11) UNSIGNED, client_id INT(11) UNSIGNED, PRIMARY KEY (project_id) ); CREATE TABLE posts ( post_id INT(11) UNSIGNED, project_id INT(11) UNSIGNED, PRIMARY KEY (post_id) );</code>
고객 삭제 시 관련 프로젝트 및 게시물을 모두 캐스케이드 삭제해야 합니다. 그러나 다음 PHP 코드는 유효하지 않습니다:
<code class="language-sql">DELETE FROM posts INNER JOIN projects ON projects.project_id = posts.project_id WHERE projects.client_id = :client_id;</code>
해결책:
삭제된 고객과 관련된 게시물을 성공적으로 삭제하려면 게시물 테이블에서 해당 항목을 삭제할 것임을 지정해야 합니다.
<code class="language-sql">DELETE posts FROM posts INNER JOIN projects ON projects.project_id = posts.project_id WHERE projects.client_id = :client_id;</code>
수정된 코드는 고객 삭제 시 프로젝트 및 관련 게시물도 삭제됩니다.
위 내용은 JOIN을 사용하여 MySQL에서 관련 데이터를 계단식으로 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!