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>
解:
要成功刪除與已刪除客戶關聯的帖子,需要指定要從posts表中刪除條目:
<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中文網其他相關文章!