让它保持简短和甜蜜
我想这样做(我现在已经无数次失败,有一次尝试甚至用空格更新了Row):
UPDATE Database2.Table1
SET (Database2.Table1.Column1, Database2.Table1.Column2, Database2.Table1.Column3)
VALUES
(Database1.Table1.Column1, Database1.Table1.Column2, Database1.Table1.Column3)
WHERE Database2.Table1.Column1 = Database1.Table1.Column1
这两个已包含相同的值,但其他2列不包含,这就是我希望使用此查询更改的内容。
以下是每张桌子的外观:
Database1.Table1
[id]
[name]
[applicationdate]
[startdate]
[shortdescription]
[longdescription]
[displayimg]
[contact]
[website]
[created]
[urlbase]
[site]
[keywords]
[type]
[location]
Database2.Table1
[id]
[name]
[applicationdate]
[startdate]
[content]
[keywords]
[customerid]
[urlbase]
[shortdescription]
[meta]
[type]
[site]
[searchurlbase]
[lang]
[educationlength]
[locations]
[educationwebsite]
[contact]
[tags]
[educationtypes]
[created]
[category]
非常感谢任何帮助,感谢您的时间:)
对不起,如果它没有任何意义,我在试图解释我遇到的问题时很容易感到困惑
答案 0 :(得分:17)
UPDATE dest
SET column2 = src.column2,
column3 = src.column3
FROM Database2.dbo.Table1 AS dest
INNER JOIN Database1.dbo.Table1 AS src
ON dest.column1 = src.column1;
鉴于您的整理问题,您可以在相等操作中指定整理。不知道哪一方提出问题,并假设你不关心区分大小写:
UPDATE dest
SET column2 = src.column2,
column3 = src.column3
FROM Database2.dbo.Table1 AS dest
INNER JOIN Database1.dbo.Table1 AS src
ON dest.column1 COLLATE Finnish_Swedish_CI_AS
= src.column1 COLLATE Finnish_Swedish_CI_AS;
如果您关心区分大小写,请将两个子句更改为_CS_AS_
。
答案 1 :(得分:-1)
如果您的数据库在同一台服务器上,那么在mysql中太容易了。 mysql命令是: 插入db2.table_name(您想要的column_name)从table1中选择table1_name.coumn_name
例如, 插入db2.new(id,name,email)从register.id,register.name,register.email中选择寄存器。
其中,db2是第二个db new是db2中的表 register在db1中,您可以将数据从此db复制到db