我有两张桌子。一个是payment1
,另一个是payment2
。它们都有4个相互列。 Id, InvoiceNumber, TransactionCode
和Date
。在表payment1
中,某些TransactionCode
不同或缺失。由于其中只有一部分不同,我希望使用TransactionCode
中的payment2
根据它们不同的Id
数字进行更新。
我知道它有点令人困惑,所以让我用一个例子解释一下:
,Id为926,交易代码为5398.在表payment2中,Id为926,但交易代码为53269845。
,Id为927,事务代码为空。在表payment2中,Id为926,但交易代码为54895321。
我想说明Id
的相同位置,请使用其他表格更新TransactionCode
。
我试过了:
"update payment1 set payment1.TransactionCode=payment2.TransactionCode
from payment1
join payment2 on (payment1.TransactionCode=payment2.TransactionCode)"
这就是错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '5 from payment join table63 on (payment1.TransactionCode=payment2.TransactionCode)' at line 1
谢谢你的到来。
答案 0 :(得分:1)
update payment1 TB1
set TB1.Transactioncode=(select B.Transactioncode from payment2 B
JOIN payment1 a
on a.Transactioncode=B.Transactioncode AND B.Transactioncode=TB1.Transactioncode)
答案 1 :(得分:1)
UPDATE Payment1 P1
SET P1.TransactionCode= (SELECT P2.TansactionCode FROM Payment2 P2 WHERE P1.TransactionCode<>P2.TransactionCode AND P1.Id=P2.Id)
OR
UPDATE Payment1
SET Payment1.TransactionCode= (SELECT Payment2.TansactionCode FROM Payment2 WHERE Payment1.TransactionCode<>Payment2.TransactionCode AND Payment1.Id=Payment2.Id)
其中,Payment1&amp; Payment2是表名(假设) 并且,ID&amp; TransactionCode是列名(假设)