我想更新“ A”表的交付状态,但条件取决于“ A”表和“ B”表的值。
我所做的是我使用了选择查询来查看两个表中具有交付状态为NULL的项目列表。
SELECT B.col1, A.Col2, A.Col3
FROM A,
B
WHERE A.col3 = '1234'
AND A.col4 = "Ready"
AND A.col5 = B.col6
AND A.Delivery_status IS NULL
我试图像这样直接更新它,但似乎不起作用。
Update A
SET A.Status = 'Delivered'
FROM A,
B
WHERE A.col3 = '1234'
AND A.col4 = "Ready"
AND A.col5 = B.col6
AND A.Delivery_status IS NULL
因此,在使用select命令检索了这些值之后,我想通过将传递状态设置为“已传递”来更新它们。构架该查询的正确方法是什么?
编辑:BTW正在使用MS SQL Server
答案 0 :(得分:0)
只需在更新时删除A in from子句,如下所示:
Update A SET Status = 'Delivered' FROM B
WHERE
A.col5 = B.col6
AND A.col3 = '1234'
AND A.col4 = 'Ready'
AND A.Delivery_status IS NULL