【问题标题】:Update table from a table while joining on a column alias在加入列别名时从表更新表
【发布时间】:2011-09-14 21:55:58
【问题描述】:

抱歉,我的 SQL 功夫没有达到标准,但这似乎是一项我似乎无法完成的基本任务。

我在 Sql Server 2008 中有两个表

tblBoxAddress - 地址 - 压缩 - 纬度 --经度

tblUpdatedDate - 地址 - 纬度 --经度

我必须用 lat 更新 tblBoxAddress 的纬度和经度。并且很长。通过匹配地址来自 tblUpdatedData。问题是 tblUpdatedData.Address 包含邮政编码。在 tblBoxAddress 中,它分为两个单独的列。

我已经能够使 select 语句正常工作

select * from tblUpdatedData t
inner join (
Select Address + ' ' + zip As 'full_address', Latitude, Longitude from tblBoxAddress) d
on d.full_address = t.Address

但是,我不知道如何在更新语句中组合 tblBoxAddress 的地址和 zip。这是据我所知:

update d
set d.Latitude = t.latitude, d.Longitude = t.longitude
FROM tblBoxAddress d inner join 
tblUpdatedData t on t.Address = d.Address + ' ' + d.zip as 'full_address'

感谢任何帮助。

【问题讨论】:

  • 您使用的是什么关系型数据库? (SQL Server、Oracle、MySQL 等)
  • SQL Server 2008,我会用该信息更新我的问题。

标签: sql sql-server sql-server-2008 alias sql-update


【解决方案1】:

您不需要在更新子句中使用别名。例如试试:

update d
set d.Latitude = t.latitude, d.Longitude = t.longitude
FROM tblBoxAddress d inner join 
tblUpdatedData t on t.Address = d.Address + ' ' + d.zip;

【讨论】:

  • 谢谢!我会在早上回来工作时尝试一下,如果它有效(它会),我会确保将您的答案标记为正确:)
猜你喜欢
  • 2022-01-02
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多