从三个相关的表中删除数据

时间:2014-09-15 09:52:10

标签: mysql sql

我有三个SQL表项目,任务和活动。问题是任务被分配给项目和活动到任务。如果我想删除该项目,我必须删除该项目的所有任务以及这些任务的所有活动。我想写一个SQL语句,首先告诉我,我正在选择正确删除的行,我实际上删除了它们。这是我写的信息:

SELECT  activities.description, 
    activities.task, 
    tasks.user, 
    tasks.name, 
    tasks.proyect 
FROM tasks  JOIN proyects WHERE task.proyect=proyects.name 
        JOIN activities WHERE activities.task=tasks.name;

然而,这会使检查你的语法错误附近:' JOIN活动WHERE activities.task = tasks.name'

我不知道出了什么问题。我检查了表格的名称,它们是正确的。

1 个答案:

答案 0 :(得分:0)

语法错误。第一个应该是ON

SELECT  activities.description, 
    activities.task, 
    tasks.user, 
    tasks.name, 
    tasks.proyect 
FROM tasks  JOIN proyects ON task.proyect=proyects.name 
        JOIN activities WHERE activities.task=tasks.name;

要从表中删除所有这些结果,您可以这样做:

DELETE FROM `tasks` WHERE `task` IN (
    SELECT  activities.task, 
    FROM tasks  JOIN proyects ON task.proyect=proyects.name 
            JOIN activities WHERE activities.task=tasks.name;)