2015-06-21 68 views
0

我有两个名为tasks和task_groups的表。每个任务都属于一个task_group。这通过使task.task_group具有唯一的task_group标识符(task_group中的列keyid)的值来体现。我想编写一个查询,设置task_group.status 0仅当有是具有状态0组中的任何任务,这是我写的查询:如何编写更新查询,根据天气子查询设置值为空

UPDATE task_groups AS tg JOIN 
     tasks AS t 
     ON t.task_group = tg.keyid AND 
      EXISTS (SELECT * 
        FROM tasks AS t 
        WHERE t.task_group = tg.keyid AND t.status = 0 
       ) 
    SET tg.status = 0; 

但是它不匹配任何,因此它不没有工作。任何人都可以告诉我查询有什么问题吗?

回答

0

您可以where子句尝试:

update task_groups tg set tg.status = 0 
where exists (select * from tasks where task_group = tg.keyid and status = 0);