从不同表中插入新记录

发布于 2025-02-05 07:22:40 字数 737 浏览 5 评论 0 原文

我正在尝试通过加入将新记录添加到表_1中的表_1,但我没有得到正确的结果。

我正在尝试将纬度和经度从表_2复制到table_1。
我的表_1带有列地址,纬度,经度
纬度&经度是空白的。

Table_2具有列地址,纬度,经度,名称,地址等。
在两个表中,地址都有一个城市名称。

insert into table_1 (latitude, longitude)
select  table_2.latitude, table_2.longitude from table_2 JOIN table_1 ON  table_1.address = table_2.address;
Getting this output: table_1

address  latitude longitude
city_1    NULL     NULL
city_2    NULL     NULL
city_3    NULL     NULL
NULL     123.12    123.12
NULL     123.12    123.12
NULL     123.12    123.12

我期待这样的事情:


address  latitude longitude
city_1    123.12    123.12 
city_2    123.12    123.12
city_3    123.12    123.12

I am trying to add new records to table_1 from table_2 via JOIN but I am not getting the correct result.

I am trying to copy latitude and longitude from table_2 to table_1.
I have table_1 with columns address, latitude, longitude
where latitude & longitude is blank.

table_2 has columns address, latitude, longitude, name, address, etc.
In both tables address has just a city name.

insert into table_1 (latitude, longitude)
select  table_2.latitude, table_2.longitude from table_2 JOIN table_1 ON  table_1.address = table_2.address;
Getting this output: table_1

address  latitude longitude
city_1    NULL     NULL
city_2    NULL     NULL
city_3    NULL     NULL
NULL     123.12    123.12
NULL     123.12    123.12
NULL     123.12    123.12

Where I am expecting something like this:


address  latitude longitude
city_1    123.12    123.12 
city_2    123.12    123.12
city_3    123.12    123.12

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

擦肩而过的背影 2025-02-12 07:22:40

在您的情况下,您应该使用 update 语句而不是 insert ,因为第一个表中的条目已经存在,您只需要

update table_1  set latitude = mapped_t2.latitude, longitude = mapped_t2.longitude
  from (select table_2.address, table_2.latitude, table_2.longitude from table_2 join table_1 on table_1.address = table_2.address) as mapped_t2
     where mapped_t2.address = table_1.address  

dbfiddle

In your case, you should use the update statement instead of insert, since the entries in the first table one already exist, and you just need to update them

update table_1  set latitude = mapped_t2.latitude, longitude = mapped_t2.longitude
  from (select table_2.address, table_2.latitude, table_2.longitude from table_2 join table_1 on table_1.address = table_2.address) as mapped_t2
     where mapped_t2.address = table_1.address  

Demo in dbfiddle

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文