繁体   English   中英

使用来自另一个不相关表的数据更新表

[英]Updating table with the data from another unrelated table

我使用的是SQL Server 2008 R2,我有下表: client(id,country,name)temp(id,country) ,它们之间是不相关的。 我想知道如何将temp.id值设置为client.id,并与国家/地区相同。 有更新句子吗? 我一直在寻找其他网站,但只是找到了相关表的解决方案,而事实并非如此。

您应该能够进行简单的insert

insert into client
select id, country, '' from temp

您可能要设置一个特定name因为它不在temp表中(除非它在client表中可以为空)。

这是一个演示

或者,如果id是自动递增的列,则从select删除该id

insert into client
select country, '' from temp

这是一个演示

您应该在SET中进行思考时要进行程序性思考。

使用SELECT检索数据
使用WHERE仅选择来自西班牙的客户
使用列的常量值将数据修改为检索的一部分
使用检索到的数据插入表中

INSERT INTO client
SELECT id+10 as id, 'Germany' as country
FROM client
WHERE country = 'Spain'

当然,如果这是一个练习,您必须学习SELECT,WHERE,UPDATE等内容,那么您将执行程序步骤。

也许您想用一种方式同步两个表:

UPDATE t SET t.id=c.id, t.country=c.countryname
FROM client c INNER JOIN temp t ON t.id = c.id

INSERT INTO temp(id,country)
  SELECT c.id, c.countryname
  FROM client c
  WHERE NOT EXISTS(SELECT 1 FROM temp t 
                   WHERE t.id=c.id)

演示版

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM