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 に答える