2

我想从一个名为更新表的临时表中更新我的产品表中的一些字段。

到目前为止,我有这个,但是我有一个 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
4

5 回答 5

1
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
于 2013-07-11T09:43:36.730 回答
0

更快的版本:

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
于 2013-07-11T09:45:27.490 回答
0

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)

MySQL解决方案:

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 服务器,请注意组合更新的预测错误。

于 2013-07-11T09:41:44.820 回答
-1

据我所知,更新的语法是,

UPDATE tablename SET columnname=value WHERE condition;

不是

UPDATE tablename SET columnname=value FROM something;

不如试试,

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 products AS destination, updated_table AS source 
SET destination.title = source.title, 
destination.title_tag = source.title_tag,
destination.keywords = source.keywords 
WHERE source.id = destination.id
于 2013-07-11T09:44:15.313 回答
-1

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

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
于 2013-07-11T09:37:09.607 回答