我有一个似乎在SQL Server中运行良好的ETL过程,但我试图将它移植到Postgresql并运行到我不明白的东西中。更新查询按我期望的方式在SQL Server中运行,但不在Postgresql中
我在第一步创建了一个名为c_production
的表。然后我想更新基于一个名为previous_type_year.
在SQL Server中的查找表加入的c_production.myValue
所有的值下面的代码工作正常:
update c_production
set myValue = PTY.myValue
FROM c_production CP JOIN previous_type_year PTY
on CP.StFips = PTY.STFIPS
AND CP.comcode = PTY.comcode
AND CP.Year = PTY.YEAR
但是,如果我尝试这个PostgreSQL的我在得到同样的价值,结束为myValue
。我真的不知道它在做什么。任何提示,可以指出为什么这两个系统处理这个查询如此不同?
感谢您的良好参考和详细的答案。我想这是这样的,但我的谷歌foo无法提取一个好的答案。 – 2011-04-01 20:06:50
快速注意。我想,你仍然可以别名表:UPDATE c_production CP 集myvalue的= PTY.myValue FROM previous_type_year PTY WHERE CP.StFips = PTY.STFIPS AND CP.comcode = PTY.comcode AND CP.Year = PTY.YEAR ; – OleTraveler 2011-04-01 22:34:29