SQL从另一个表更新一个表

时间:2009-10-22 12:04:19

标签: sql sql-update openedge progress-db

以下是我的问题的简化版本:

Table 1
Key1, lastdate, lasttranstype

Table2
Table1key1, trandate, trantype

我希望SQL语句使用Table2中的匹配记录和最新日期更新table1中每条记录的table1上的lastdate和lasttransdate

我的数据库正在取得进展。

这是否可行(我当然可以编写一个程序来执行此操作,但我宁愿只使用SQL语句执行此操作)?

2 个答案:

答案 0 :(得分:1)

在T-SQL中:

UPDATE Table1 
SET lastdate = trandate, lasttranstype = trantype
FROM Table1 INNER JOIN Table2 ON Table1.Key1 = Table2.Table1Key1

编辑: 我不知道Progress是RDBMS的名称。以下是否适合您?

UPDATE Table1
SET lastdate = 
(SELECT trandate FROM Table2 WHERE Table2.Table1Key1 = Table1.Key1),
lasttranstype = 
(SELECT trantype FROM Table2 WHERE Table2.Table1Key1 = Table1.Key1)

答案 1 :(得分:0)

update table1, table2 
set table1.lastdate = table2.trandate, table1.lasttranstype = table2.trantype 
where table1.key1 = table2.table1key1