0

我正在尝试编写一个执行以下操作的 sql 查询。

我有两个数据库,一个是databaseA,另一个是databaseB。

它们都有类似的表,称为区域。

两个名为 zone 的表都有不同数量的列,但有些列是相同的。我现在唯一关心的列是 ID 和 minclip。

我需要一个查询,它将获取 databaseA 的 zone min_clip 的值并将其插入到 databaseB 的 zone minclip 的每一行中,但前提是两个数据库的 ID 值匹配。

因此,它将从 databaseA.zone 中获取 minclip 值并将其插入到 databaseB.zone 中,其中两者的 id 列都匹配。

4

1 回答 1

0

据我了解,基本上你想更新databaseB.zonefrom中的值databaseA.zone,而不是插入:

update databaseB.zone 
set minclip=(select databaseA.zone.minclip 
from databaseA.zone where databaseA.zone.ID=databaseB.zone.ID)

鉴于您的数据被截断的问题,让我们尝试从以下值生成 SQL 语句databaseA.zone

select concat('update databaseB.zone 
    set minclip=',minclip,' where ID=',ID,';') from databaseA.zone

获取此 SQL 的输出并运行它。

会有一堆零记录更新,但我不会开始相交databaseA.zonedatabaseB.zone保持简单。

于 2013-06-25T17:11:48.090 回答