0
我有2個表。如圖中所示具有所需結果一起表A和表B:用主鍵替換行mysql
ID1和ID2的組合是獨一無二的。我想將表A的行內容替換爲表B中的行內容(如所需結果所示,第1行和第4行中的數量已更改爲反映在表B中,同時保留表A的其他行) 。什麼是實現這一目標的最佳方式?可以在這裏使用REPLACE(沒有單列作爲主鍵)。
我有2個表。如圖中所示具有所需結果一起表A和表B:用主鍵替換行mysql
ID1和ID2的組合是獨一無二的。我想將表A的行內容替換爲表B中的行內容(如所需結果所示,第1行和第4行中的數量已更改爲反映在表B中,同時保留表A的其他行) 。什麼是實現這一目標的最佳方式?可以在這裏使用REPLACE(沒有單列作爲主鍵)。
如果您想通過SELECT
造成的,試試這個:
SELECT
a.id1, a.id2,
COALESCE(b.name1, a.name1) AS name1,
COALESCE(b.name2, a.name2) AS name2,
COALESCE(b.amount, a.amount) AS amount
FROM tablea a
LEFT JOIN tableb b
ON a.id1 = b.id1 AND a.id2 = b.id2
如果你想它由UPDATE
,試試這個:
UPDATE tablea a
LEFT JOIN tableb b
ON a.id1 = b.id1 AND a.id2 = b.id2
SET
a.name1 = COALESCE(b.name1, a.name1),
a.name2 = COALESCE(b.name2, a.name2),
a.amount = COALESCE(b.amount, a.amount)
你有兩個關鍵的正確主索引?如果是這樣的話,是的,只需使用replace即可。 – FrankerZ