我有这个表结构。 。
Table A
a_ID | status
-------------
1 BAD
2 OK
3 OK
4 BAD
5 BAD
TABLE B
b_ID | a_ID
-------------
1 1
2 4
更新查询后。
Table A
a_ID | status
-------------
1 OK
2 OK
3 OK
4 OK
5 BAD
我希望你明白这个主意。 请帮忙。
编辑:我试过了
UPDATE TABLE_A set status = 'OK' WHERE EXISTS (SELECT * FROM TABLE_B)
..但所有行都受到了影响。
答案 0 :(得分:1)
将ID命名为a_ID是多余的
update a
set a.status = 'OK'
from a
join b
on a.id = b.id
and a.status <> 'OK'
答案 1 :(得分:1)
您可以使用加入更新您的表格,如下所示。
UPDATE [LenqReloaded].[dbo].A SET [ResponseLetterSent] = 1
FROM [LenqReloaded].[dbo]. A
join [LenqReloaded].[dbo]. B on A.[a_ID] = B.[a_ID]
WHERE A.[ResponseLetterSent] IS NULL