使用另一个数据库表中的数据更新(填充)SQL Table列

时间:2015-03-27 05:29:06

标签: mysql sql

我有两个数据库,test1test2test1具有以下table1

ID | Word      | Def
1.   abandon     NULL
2.   test        NULL

对于test2数据库,我有以下table2

ID | Word      | Def
1.   abandon     (verb) the meaning of abandon
2.   word2       the meaning of word2
3.   abandon     (noun) the meaning of abandon

我想将数据库的定义从test2table2复制到数据库test1table1,其中table1中的单词与来自{的相同单词匹配{1}}并避免重复的字词;例如,单词table2abandon中出现两次,在table2中出现一次。如果可能,我想在第一个定义后附加单词table1的第二个定义,并在abandontable1列中对其进行更新。

我尝试了以下内容。

Def

但我收到一个我不太明白的错误。

1 个答案:

答案 0 :(得分:2)

您只需要获得一个定义。这是一种适用于MySQL和Postgres的方法:

UPDATE test1.table1 t1
    SET Def = (SELECT Def
               FROM test2.table2 t2
               WHERE t1.Word = t2.Word
               ORDER BY id
               LIMIT 1);

LIMIT 1也可以是select top 1fetch first 1 row only