仅在存在关系时才更新SQL

时间:2011-06-16 18:58:15

标签: sql

我有批次和任务。在将一些任务批处理到另一个批处理中时,我想通过标记deleted = true来关闭现在为空的所有批处理。我试图只选择使用一个没有任务的批次的连接。:

SELECT id FROM batches INNER JOIN tasks on batches.id = tasks.batch_id where count(tasks.id) > 0 

但这似乎不起作用。

2 个答案:

答案 0 :(得分:2)

更改为外部联接。内部联接无法获得不匹配。

SELECT id FROM batches LEFT JOIN tasks on batches.id = tasks.id where tasks.id is null

答案 1 :(得分:0)

如果我没有误解你的问题,那就是你要找的。

UPDATE tbl
SET col=tbl.col
FROM tbl 
INNER JOIN tbl1 ON tbl1.SomeCol=tbl.SomeCol
WHERE ......