2016-12-06 55 views
-1

我試圖使用mysql命令來更新我的表:是否有更好的方式來運行mysql更新leftjoin

Update TableA left join 
     TableB -- I am guessing this belongs here 
     on TableA.Key=TableB.key 
    set TableA.column1=TableB.column1 
    where TableA.Column2='XXX';* 

我要的是更新的記錄,這兩個比賽的關鍵條件,where子句而此代碼使其他記錄只符合where子句:TableA.Column2 ='XXX'也變化

據我所知,使用正確的連接或內部連接也可以解決問題,與左連接相比,花更多的時間。

有沒有辦法改善這個命令;

在此先感謝;

回答

0

這似乎是你想要的查詢:

update TableA a join 
     TableB b 
     on a.Key = b.key 
    set a.column1 = b.column1 
    where a.Column2 = 'XXX'; 

對於此查詢,則需要兩個指標:TableA(Column2, key)TableB(key)。這些索引應該加速查詢。

+0

對於看起來像是正確答案的問題,是否有一個匿名downvote的原因? –

+0

謝謝你的回答,我已經試過了,但它比我預期的花費更多的時間,所以我傾向於使用正確的加入 –

+0

@TaroNikkei。 。 。即使有索引? –

相關問題