uodate 表一 a set 地址=(select 名稱 from 行政地區 b where b. 代碼=a.地區代碼)
怎么更新的時候出現,單行子查詢回傳多個行 錯誤,應該怎么寫,請教
uj5u.com熱心網友回復:
update 打錯了uj5u.com熱心網友回復:
你這個關聯是1對多的關系,所以出現這個錯誤,看你業務邏輯,如果這回傳的多行是重復的,那你可以用 distinct里處理:update 表一 a set 地址=(select distinct 名稱 from 行政地區 b where b. 代碼=a.地區代碼)
uj5u.com熱心網友回復:
打錯字 IDE不提示嗎
uj5u.com熱心網友回復:
原因就是b表中有一些 :同一個代碼 對應的名稱 不同 這樣資料 或者是存在重復的資料 ,如果對于資料精確度不高就 這樣寫update 表一 a set 地址=(select min(名稱) from 行政地區 b where b. 代碼=a.地區代碼);
如果要求高精確度 就要把 b表重復的去掉 :
如下查詢出那些有重復的
select 代碼 from 行政地區 group by 代碼 having(count(1)>1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/26395.html
標籤:非技術區
