我在编写SQL查询时遇到问题,我正在尝试使用Update和Join。我已经在网上查了一下,有很多类似的例子,但我还没有能够让他们上班。
我正在尝试在表A和表B之间进行连接(在链接它们的唯一ID上),然后更新表A中的值,如果表B中找到的两个值与我期望的值匹配(我在语句中手动输入:
UPDATE TableA
INNER JOIN TableB ON TableA.UniqueId = TableB.UniqueId
SET TableA.email = 'emailaddress'
WHERE upper(TableA.user) = upper('user') AND TableB.Account = 'accountnumber'
AND TableB.userType = 'usertype';
我可能会因此而复杂化。感谢。
答案 0 :(得分:1)
您可以使用合并
MERGE INTO TableA e
USING (SELECT * FROM TableB) h
ON (e.UniqueId = h.UniqueId)
WHEN MATCHED THEN
UPDATE
SET e.email = 'emailaddress'
WHERE upper(e.user) = upper('user')
AND h.Account = 'accountnumber'
AND h.userType = 'usertype';
答案 1 :(得分:0)
试试这个:
UPDATE TableA
SET TableA.email='emailaddress'
FROM TableA INNER JOIN TableB
ON TableA.UniqueId = TableB.UniqueId
WHERE upper(TableA.user) = upper('user')
AND TableB.Account = 'accountnumber'
AND TableB.userType = 'usertype';