Mysql:将源表中的记录更新到目标表

时间:2013-04-07 10:11:23

标签: mysql

我有两张相同的桌子。 '号码'和'产品代码' fiels构成了独特的钥匙。这种独特的组合键适用于表格相同。

我想将表2中的记录插入表1.可能是记录唯一键已经存在。在这种情况下,需要为所有字段更新记录。但是......如果表2记录中的日期字段比表1中的日期字段更新,则只需要更新记录。

我尝试了以下内容:

INSERT INTO Table_dest (Number, Productcode, TransactionDate,
                        TransactionTime, Price)
SELECT
  Number, Productcode, TransactionDate, TransactionTime, Price
FROM
  Table_source
WHERE
  Table_source.TransactionDate >= Table_dest.TransactionDate
  AND Table_source.TransactionTime > Table_dest.TransactionTime;

但是它给了我关于WHERE子句的错误。 它也给出了重复的错误,但我不知道如何解决这个问题。 任何建议? 谢谢!

1 个答案:

答案 0 :(得分:0)

加入两个表时,您应该遵循以下格式:

INSERT INTO tableA (a1, a2, a3)

SELECT b1, b2, b3
FROM tableB b
JOIN tableA a ON a.a1 = b.b1
WHERE (CONDITION)

看看它是否适合你。