簡體   English   中英

如何刪除數據庫中MySQL表中的相關數據?

[英]How do delete related data in MySQL tables in a database?

我確信這是一個非常基本的問題,但是我茫然不知所措,最近開始使用MySQL。 我已經修改,創建了數據庫,用戶,表,向表中添加和修改了條目,但是現在我認為我需要在此處使用Join,但是我不確定。

在同一個數據庫中,我有兩個表。 任務表有兩列感興趣的用戶和密鑰ID。 活動表中有一列有趣的任務。 我需要做的是刪除某個用戶的表任務中的所有任務。 但是,這也意味着我需要刪除這些任務的所有活動。 現在,它們之間的關聯方式是,任務表中的keyid值是活動表中task列中的值。

我的問題是如何編寫DROP或DROP + JOIN查詢來做到這一點?

您可以在2個單獨的查詢中執行此操作?

DELETE FROM activities WHERE task IN 
     ( SELECT keyid FROM tasks WHERE user  = 'CertainUser') ;
DELETE FROM tasks WHERE user = 'CertainUser' ;

您可以像這樣使用JOIN

 DELETE Tasks, Activities
 FROM Tasks INNER JOIN Activities
 ON Tasks.KeyID = Activities.Task
 WHERE Tasks.User = 'User Name Here'

但是最好在設計表時使用ON DELETE CASCADE ,以便必須從母表中刪除,並且子表的所有相關記錄也將被自動刪除。

在這里查看示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM