1
我在发布此问题之前尝试搜索,但无法找到另一个示例。SQL Server 2008 - 更新表A使用与C连接的结果B
我很痛苦地意识到,SQL目前是我的致命弱点,我正在研究它,所以请耐心等待!
我悲哀的故事,涉及3个表:
表A:有柱(estId)我想更新
tableB的:包括建立详细信息,包括名称(estName)
表C:包含需要导入的建立数据,包括建立名称(estName)和关联的建立标识(estCode)
在伪语言中,我希望实现的是:
Update tableA
Set estId = tableC.estCode
Where tableC.estName = tableB.estName
我已经试过这样:
UPDATE tableA
SET estId = tableC.estCode
FROM
tableC
JOIN tableB
ON tableC.estName = tableB.estName
那失败。或者说,它更新了estId列,但每行都包含tableC的第一个值。
我可能失去了一些东西明显...
谁能帮助?
您需要将TableA连接到'from'子句中的其他表。我没有看到上述信息的连接。所以,'更新TableA set estId = tableC.estCode from TableA内部连接TableB on ...内部连接TableC ...' –
您需要一个条件来连接到tableA - 否则数据库引擎不知道如何更新列。 tableA中还有哪些与tableB或tableC中的列对应的列? – Dave
开头的事情:您当前的加入/更新没有tableA上的任何条件。你如何期望tableB/tableC中的行与你想在tableA中更新的行匹配? – YavgenyP