有一个应用程序可以记录来自项目和其他各种数据的交易。
但是,有一些额外的列在交易时未填充。这些列的数据存储在列出所有项目的数据库的单独表中。
以下示例:
交易记录表-在此示例中,该应用程序将填写TransID,Project和Country。但是,应用程序无法填充Task和Org。
项目表-这是主要的项目数据库。
问题
我需要使用“项目表”中的数据更新事务表“任务”和“组织”列。我认为这很简单:
UPDATE TABLE Transaction_Table A SET A.TASK =
(SELECT B.TASK FROM Project_Table B WHERE B.Project = A.Project AND B.Country = A.Country)
, A.Org =
(SELECT B.Org FROM Project_Table B WHERE B.Project = A.Project)
有人可以建议最好的方法以获得我想要的结果吗?
谢谢
答案 0 :(得分:1)
只需在这两个表之间使用inner
连接并照常更新
UPDATE A
set A.Task=P.Task,
A.Org=P.Org
from
Transaction_Table A inner join
Project_Table P on A.Project=P.Project and A.Country=P.Country
答案 1 :(得分:0)
您可以在“常规”中使用此查询:
UPDATE table1
SET table1.column = table2.expression1
FROM table1
INNER JOIN table2
ON (table1.column1 = table2.column1)
[WHERE conditions];