我有一个表格,其中列出了连接到houseID的SSN(不是真实的)。
我需要根据给定的地址更新特定SSN的houseid。
我有另一张表,其中houseID已连接到HouseAddresses。
这是我到目前为止所做的:
update persons
set houseid = houses.houseid
from houses
where houses.houseaddress = 'Alma Street'
and persons.SSN = 675849512;
虽然这有效,但它不会更新任何内容,我知道它应该更新一行。
恐怕我不知道从哪里开始。
答案 0 :(得分:0)
尝试使用此
update persons
set persons.houseid = houses.houseid
from houses
where houses.houseaddress = 'Alma Street' and
persons.SSN = 675849512;
OR
update persons
set houseid = i.houseid
from (
select houseid,houseaddress
from houses) i
where i.houseaddress = 'Alma Street' and
persons.SSN = 675849512;
答案 1 :(得分:0)
如果您想从地址连接的其他表更新您的houseid,您应该按地址连接表
看这个
update persons
set houseid = (Select Top(1) houses.houseid from
from houses
where houses.houseaddress = persons.address
.....
);
答案 2 :(得分:0)
以这种方式尝试:按以下方式使用JOIN
获得有效解决方案,但在下面的代码中我将SSN
作为公共列,但您可以将其替换一个如果不同:
UPDATE p SET houseid = h.houseid
FROM persons p
INNER JOIN houses h ON h.SSN = p.SSN
AND h.houseaddress = 'Alma Street'
AND ----------
--------
您可以根据AND
中的要求添加更多条件,或者根据需要添加WHERE
子句。