我确信这是一个非常基本的问题,但是我很茫然,最近开始使用MySQL。我已经修改,创建了数据库,用户,表格,添加和修改了条目到表格,但现在我想我需要在这里使用加入,但我不确定。
在同一个db中我有两个表。 tasks表有两列感兴趣的用户和keyid。虽然活动表有一列感兴趣的任务。我需要做的是删除特定用户的表任务中的所有任务。但是,这也意味着我需要删除这些任务的所有活动。现在这些相关的方式是,tasks表中的keyid值是活动表中任务列中的值。
我的问题是如何编写DROP或DROP + JOIN查询来执行此操作?
答案 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。