[英]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.