如何删除数据库中MySQL表中的相关数据?

时间:2014-09-03 10:31:48

标签: mysql sql database

我确信这是一个非常基本的问题,但是我很茫然,最近开始使用MySQL。我已经修改,创建了数据库,用户,表格,添加和修改了条目到表格,但现在我想我需要在这里使用加入,但我不确定。

在同一个db中我有两个表。 tasks表有两列感兴趣的用户和keyid。虽然活动表有一列感兴趣的任务。我需要做的是删除特定用户的表任务中的所有任务。但是,这也意味着我需要删除这些任务的所有活动。现在这些相关的方式是,tasks表中的keyid值是活动表中任务列中的值。

我的问题是如何编写DROP或DROP + JOIN查询来执行此操作?

2 个答案:

答案 0 :(得分:0)

您可以在2个单独的查询中执行此操作吗?

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

答案 1 :(得分:0)

你可以在这个上使用JOIN,如:

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

但是如果在设计表时使用ON DELETE CASCADE会更好,那么您必须从母表中删除,并且子表的所有相关记录也将自动删除。

参见示例here