2015-12-02 113 views
0

关于此问题有许多不同的帖子,但我无法找到我需要的答案。我希望这个问题是独一无二的。使用公共字段将记录从一个表追加到另一个表

我试图将所有数据从一个表追加到另一个表,而不创建新记录。第二个表中的数据实际上是第一个表中现有记录的一部分数据的子集。

例如: 我有表“SPK”。我想把所有来自SPK的数据写入表“RCT”。我想匹配的每条记录之间的通用字段是RegID,它在两个表中都是唯一的(即每个RCT记录只有一个SPK记录)。

回答

0

如果我理解正确,你的意思是将一个表中的列(称为SECOND)追加到另一个表中(称之为FIRST)。

在这种情况下,这是否工作?

UPDATE 
    regcontactsTest 
    JOIN 
    speakersTest 
    ON speakersTest.RegistrationID = regcontactsTest.RegistrationID 
SET regcontactsTest.presentationtitle = speakersTest.presentationtitle 

编辑:更新基于MariaDB的语法

+0

于是我就这个确切的查询。但它给了我这个错误:*#1064 - 你的SQL语法有错误;检查对应于您MariaDB的服务器版本在第3行* 'UPDATE regcontactsTest SET regcontactsTest.presentationtitle = speakersTest.presentationtitle 使用近 'FROM speakersTest JOIN regcontactsTest ON speakersTest' FROM speakersTest JOIN 正确的语法手册regcontactsTest ON speakersTest.RegistrationID = regcontactsTest.RegistrationID' – Mert

+0

你可以尝试这样的:UPDATE regcontactsTest JOIN speakersTest ON speakersTest.RegistrationID = regcontactsTest.RegistrationID SET regcontactsTest.presentationtitle = speakersTest.presentationtitle – Bajji

+0

这个工作:)谢谢你这么多。 – Mert

0

您需要使用JOIN查询。对于一般更新加入:

update tab1 a 
    join tab2 b ON a.join_colA = b.join_colB 
    SET a.columnToUpdate = [something] 

或者换句话说:

update 
    tab1 a 
    join tab2 b on .. 
set a.field=...; 
相关问题