sql—将starting的示例从一个表复制到另一个表,其中表共享accountid

gkl3eglg  于 2021-08-13  发布在  Java
关注(0)|答案(2)|浏览(278)

我有两张table:tblaccount和tblstarting。两者都有一个名为“starrating”的列,我需要将tblstarting中starrating的值复制到tblaccounts.starrating,只要tblstarting中存在accountid,就可以为tblstarting中存在的每个帐户。每个表都有一个关联的“accountid”,我需要用它来匹配这些值。
我开始这样尝试。。

UPDATE tblAccounts SET starRating =
(SELECT starRating
FROM tblStarRating
WHERE (SELECT accountID from tblStarRating)=(SELECT accountID from tblAccounts) )
fjaof16o

fjaof16o1#

应该是这样工作的,但这取决于您的rdbms:

UPDATE tblAccounts 
SET starRating =
  (SELECT MAX(starRating)
  FROM tblStarRating
  WHERE tblAccounts.accountID = tblStarRating.accountID);
``` `MAX` 这是因为从技术上讲,子查询中可能有很多行,但是 `MAX` 总是只产生一个值
f5emj3cl

f5emj3cl2#

请使用下面的查询,

UPDATE tblAccounts SET starRating =
(SELECT starRating
FROM tblStarRating
WHERE tblStarRating.accountID  = tblAccounts.accountID);

相关问题