鍍金池/ 問(wèn)答/數(shù)據(jù)庫(kù)/ sql如何實(shí)現(xiàn)兩個(gè)表的關(guān)聯(lián)更新

sql如何實(shí)現(xiàn)兩個(gè)表的關(guān)聯(lián)更新

mysql數(shù)據(jù)庫(kù)里,A表和B表,分別存儲(chǔ)了一部分人的信息,里面有重復(fù)的,但并不完全重復(fù),B表的數(shù)據(jù)較為準(zhǔn)確?,F(xiàn)在我想通過(guò)sql語(yǔ)句,將A表中(存在于B表中)的相關(guān)數(shù)據(jù)進(jìn)行更新。

update A set a= (select b from B where id = A.id)
使用這條語(yǔ)句的后果,就是A存在于B中的數(shù)據(jù)確實(shí)是能改了,但不存在于B中的數(shù)據(jù),相應(yīng)的a字段全部被清空了。

求指教

回答
編輯回答
夢(mèng)囈

已經(jīng)解決了,加一個(gè)條件即可
update A set a = (select b from B where B.id = A.id) where A.id in (select B.id from B)

2017年3月29日 06:30