【发布时间】:2015-11-30 21:26:09
【问题描述】:
我必须要桌子。 (我正在使用MySQL)。它们具有相同的列数。让我通过展示其中的一些来向您展示:
表:payment
Id TransactionCode InvoiceNumber
1 238694 322
2 518675 325
6 348611 401
13 750329 412
表:payment2
Id TransactionCode CustomerId
1 238694 32
2 NULL 36
13 79 48
所以,表payment 是保存正确值的表,如您所见,这两个表几乎相同,我只需将所有数据从payment.TransactionCode 移出并替换为payment2.TransactionCode。
我想这样更新表 payment2:
Id TransactionCode CustomerId
1 238694 322
2 518675 325
6 348611 401
13 750329 412
为了选择它,我使用了这个:
SELECT payment.Id AS id,
payment.TransactionCode AS TranC ,
payment2.TransactionCode AS TranC2
FROM payment
LEFT JOIN payment2
ON payment.Id = payment2.Id
它工作得很好。但是我怎么update/set的值呢?!我试过了,但没有用:
UPDATE payment
SET payment.TransactionCode = (SELECT payment2.TansactionCode
FROM payment2
WHERE payment.TransactionCode<>payment2.TransactionCode
AND payment.Id=payment2.Id)
【问题讨论】:
-
看起来不错,但是您发出了
SELECT子句而不是UPDATE子句(确保备份!),而且您忘记在末尾关闭括号。 -
感谢您的早日回复忘记括号是我的错,因为我在这里写的时候没有文本编辑器。我的实际代码中没有这样的缺陷。无论如何我都会为其他人编辑它。谢谢老哥
-
嘿@Sean,对不起伙计.. 现在我在那里看到你的评论.. 让我试试这个..
-
您希望 payment2 中的数据出现在支付表中吗?
-
No man,table: payment is complete one,这次我要payment的数据进来坐payment2。只有 TransactionColumn 不同,所以这足以改变。 ;)