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

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

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

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

求指教

回答
編輯回答
夢囈

已經(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