繁体   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