[英]Update Column Of All Rows In A Table From Another Table Using Primary Key And Foreign Key
我有一个查询,使用主键和外键关系来更新列中的所有行,但错误是:
消息512,级别16,状态1,第1行
子查询返回的值超过1。 当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。 该语句已终止。
我的查询是:
Update T_OP
Set DOCID = (Select DocID from T_Reg_Patients)
where Fk_RegID = (Select Pk_RegID from T_Reg_Patients)
Table1
:
Pk_RegID Name DocID
1 Sam 1
2 Sam2 2
3 Sam3 3
4 Sam4 4
Table 2
:
Pk_OPID Fk_RegID Name DOCID
1 1 Sam NULL
2 2 Sam2 NULL
3 3 Sam3 NULL
4 4 Sam4 NULL
如果Fk_RegId(在表2中)与Pk_RegID(在表1中)相同,我必须从表1更新DOCID。
请帮我。 谢谢!
使用以下查询。
UPDATE t
SET t.DOCID=p.DOCID
FROM T_OP t
JOIN T_Reg_Patients p ON p.Pk_RegID=t.Fk_RegID
使用JOIN
代替:
Update T_OP
Set docid = rp.DocID
from t_op o JOIN
T_Reg_Patients rp
on o.Fk_RegID = rp.Pk_RegID;
但是,可能无需在两个表中都存储DocID
。 为什么在需要获取值时不只使用JOIN
?
Update t2
set t2.docid=t1.DocID
from
T_Reg_Patients t1 join t_op t2 on
t2.Fk_RegID=t1.Pk_RegID
UPDATE table
SET t.DOCID=p.DOCID
FROM T_OP t
JOIN T_Reg_Patients p ON p.Pk_RegID=t.Fk_RegID
在Mysql中,您可以使用-
Update table2 t2 join table1 t1
on t2.Fk_RegID = t1.Pk_RegID
set t2.DOCID = t1.DocID;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.