0
我试图从表B.两个数据值来更新表A中,我想我可以这样做:如何使用表B中的数据更新表A?
UPDATE A
SET A.DATA1= B.DATA1, A.DATA2= B.DATA2
FROM TABLE1 A, TABLE2 B
WHERE A.ID = B.ID;
什么是正确的语法?
我试图从表B.两个数据值来更新表A中,我想我可以这样做:如何使用表B中的数据更新表A?
UPDATE A
SET A.DATA1= B.DATA1, A.DATA2= B.DATA2
FROM TABLE1 A, TABLE2 B
WHERE A.ID = B.ID;
什么是正确的语法?
经典(非显而易见)标准的SQL答案是:
UPDATE A
SET (Data1, Data2) = ((SELECT B.Data1, B.Data2
FROM B
WHERE B.ID = A.ID))
WHERE A.ID IN (SELECT B.ID FROM B);
相关联的子查询对每个匹配的行中的A. UPDATE上的生成一个结果行(大概)从乙WHERE子句可防止您在B中没有匹配行的情况下使数据A无效。双括号不是偶然的拼写错误。
这是很难写的,所以大多数DBMS提供了一个非标准的机制来更新连接,但是所用的语法因DBMS而异。
对于SQL Server,我会做:
UPDATE A SET
A.DATA1= B.DATA1,
A.DATA2= B.DATA2
FROM TABLE1 A
JOIN TABLE2 B on WHERE A.ID = B.ID
您正在使用哪个数据库管理系统? –