sql server,update table A如果表A中存在表A记录

时间:2017-10-25 15:01:48

标签: sql-server tsql

我有这个表结构。 。

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)

..但所有行都受到了影响。

2 个答案:

答案 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