在几个字段上使用内部联接更新表

时间:2014-01-03 13:09:54

标签: sql sql-server sql-server-2008 sql-update inner-join

我有这个问题:

update B
set B.NBR_OF_BACKUP=B.NBR_OF_BACKUP - 1
FROM BACKUP_TABLE B
INNER JOIN tbl I ON B.ID_BACKUP=i.id_backup 
tbl中的

我有:

ID_BACKUP ID_IMAGES
1         2
1         3
1         4
6         3

我的查询仅针对不同的id_backup进行更新 但我还需要更新表格BACKUP_TABLE,与表id_backup中的tbl相同{{1}}

1 个答案:

答案 0 :(得分:2)

我认为你想要的是:

update B
set B.NBR_OF_BACKUP=I.NBR_OF_BACKUP - 1
FROM BACKUP_TABLE B
INNER JOIN (SELECT id_backup, count(*) as nbr_of_backup FROM tbl GROUP BY id_backup) I 
ON B.ID_BACKUP=i.id_backup