mysql从另一个表更新查询

mysql从另一个表更新查询,mysql,Mysql,我想从名为updated table的临时表中更新products表中的一些字段 到目前为止,我有这个,但我有一个sql错误,我不能找到它是什么,虽然 UPDATE destination SET destination.title = source.title, destination.title_tag = source.title_tag, destination.keywords = source.keywords FROM updated_table AS source JO

我想从名为updated table的临时表中更新products表中的一些字段

到目前为止,我有这个,但我有一个sql错误,我不能找到它是什么,虽然

UPDATE destination 

SET destination.title = source.title, 
destination.title_tag = source.title_tag,
destination.keywords = source.keywords

FROM updated_table AS source

JOIN products AS destination ON source.id = destination.id

您的查询有问题。尝试以下查询:

UPDATE destination 

SET title = source.title, 
title_tag = source.title_tag,
keywords = source.keywords

FROM updated_table AS source

JOIN products AS destination ON source.id = destination.id

您的查询有问题。尝试以下查询:

UPDATE destination 

SET title = source.title, 
title_tag = source.title_tag,
keywords = source.keywords

FROM updated_table AS source

JOIN products AS destination ON source.id = destination.id
ANSI解决方案:

UPDATE
 products destination
SET
 destination.title = (SELECT title FROM updated_table source WHERE destination.id = source.id),
 destination.title_tag = (SELECT title_tag FROM updated_table source WHERE destination.id = source.id),
 destination.keywords = (SELECT keywords FROM updated_table source WHERE destination.id = source.id)
UPDATE
 products destination
JOIN
 updated_table source
ON
 source.id = destination.id
SET
 destination.title = source.title, 
 destination.title_tag = source.title_tag,
 destination.keywords = source.keywords
MySQL解决方案:

UPDATE
 products destination
SET
 destination.title = (SELECT title FROM updated_table source WHERE destination.id = source.id),
 destination.title_tag = (SELECT title_tag FROM updated_table source WHERE destination.id = source.id),
 destination.keywords = (SELECT keywords FROM updated_table source WHERE destination.id = source.id)
UPDATE
 products destination
JOIN
 updated_table source
ON
 source.id = destination.id
SET
 destination.title = source.title, 
 destination.title_tag = source.title_tag,
 destination.keywords = source.keywords
如果您使用的是复制mysql服务器,请注意组合更新时的预测错误。

ANSI解决方案:

UPDATE
 products destination
SET
 destination.title = (SELECT title FROM updated_table source WHERE destination.id = source.id),
 destination.title_tag = (SELECT title_tag FROM updated_table source WHERE destination.id = source.id),
 destination.keywords = (SELECT keywords FROM updated_table source WHERE destination.id = source.id)
UPDATE
 products destination
JOIN
 updated_table source
ON
 source.id = destination.id
SET
 destination.title = source.title, 
 destination.title_tag = source.title_tag,
 destination.keywords = source.keywords
MySQL解决方案:

UPDATE
 products destination
SET
 destination.title = (SELECT title FROM updated_table source WHERE destination.id = source.id),
 destination.title_tag = (SELECT title_tag FROM updated_table source WHERE destination.id = source.id),
 destination.keywords = (SELECT keywords FROM updated_table source WHERE destination.id = source.id)
UPDATE
 products destination
JOIN
 updated_table source
ON
 source.id = destination.id
SET
 destination.title = source.title, 
 destination.title_tag = source.title_tag,
 destination.keywords = source.keywords

如果您使用的是复制mysql服务器,请注意组合更新的预测错误。

据我所知,更新的语法是

UPDATE tablename SET columnname=value WHERE condition;
不是

与其尝试

UPDATE products AS destination JOIN updated_table AS source 
ON source.id = destination.id
SET destination.title = source.title, 
destination.title_tag = source.title_tag,
destination.keywords = source.keywords


据我所知,Update的语法是

UPDATE tablename SET columnname=value WHERE condition;
不是

与其尝试

UPDATE products AS destination JOIN updated_table AS source 
ON source.id = destination.id
SET destination.title = source.title, 
destination.title_tag = source.title_tag,
destination.keywords = source.keywords

更快的版本:

UPDATE destination AS source, products AS destination
SET destination.title = source.title, 
destination.title_tag = source.title_tag,
destination.keywords = source.keywords
where source.id = destination.id
更快的版本:

UPDATE destination AS source, products AS destination
SET destination.title = source.title, 
destination.title_tag = source.title_tag,
destination.keywords = source.keywords
where source.id = destination.id

什么错误?我没有模式,所以你能提供一些额外的信息吗?什么错误?我没有模式,所以你能提供一些额外的信息吗?