根据另一个表中的列更新表中的列

时间:2012-10-17 17:20:31

标签: sql select

我有两张桌子。患者表具有PatientName,Age和Sex。访问表具有PatientName,SpecialistName,DateOfVisit和Age Column,其中尚未包含任何值。我想根据患者表中患者的年龄更新访问表中的年龄列。这是我最好的猜测,但收到的信息是:

  

“操作必须使用可更新的查询。”

update visits v
set v.age = (
select p.age from
patients p where v.pname = p.pname);

3 个答案:

答案 0 :(得分:1)

如果您使用MSSQL

UPDATE v
SET v.Age = p.Age
FROM visits V INNER JOIN patients p
ON v.pname = p.pname

如果您使用MySQL

UPDATE visits V
INNER JOIN patients p
ON v.pname = p.pname
SET v.Age = p.Age

See this Link: UPDATE with JOIN

答案 1 :(得分:0)

尝试使用from子句如下:

update visits v
set v.age = p.age
from patients p 
where v.pname = p.pname;

答案 2 :(得分:0)

简单

update visits v, patients p set v.age = p.age where v.pname = p.pname;