作爲SQL新手,請您指出正確的方向。我知道以下是錯誤的,但我不知道爲什麼。基於另一個表更新字段
UPDATE cus
SET cus.leg_no = new.leg_no
WHERE cus.c_no = new.c_no
的cus
表目前在leg_no
null
。我想從new
表中更新它。我將加入c_no
這兩個表。
我已經嘗試搜索網頁,但我越來越困惑。這導致我認爲我需要FROM,但有些東西告訴我這是在使用SELECT而不是UPDATE時。
作爲SQL新手,請您指出正確的方向。我知道以下是錯誤的,但我不知道爲什麼。基於另一個表更新字段
UPDATE cus
SET cus.leg_no = new.leg_no
WHERE cus.c_no = new.c_no
的cus
表目前在leg_no
null
。我想從new
表中更新它。我將加入c_no
這兩個表。
我已經嘗試搜索網頁,但我越來越困惑。這導致我認爲我需要FROM,但有些東西告訴我這是在使用SELECT而不是UPDATE時。
UPDATE cus,new
SET cus.leg_no = new.leg_no
WHERE cus.c_no = new.c_no
下面是做到這一點的標準方式:
UPDATE cus
SET cus.leg_no = (select new.leg_no from new WHERE cus.c_no = new.c_no)
這裏的SQL服務器/ MS接入方言的方式來做到這一點:
UPDATE cus
SET cus.leg_no = new.leg_no
FROM cus
INNER JOIN new
ON cus.c_no = new.c_no
需要注意的是,與標準方法,如果new
中有多行匹配cus
中的特定行,則會收到錯誤消息。而使用SQL Server/MS訪問方式表單時,系統會隨意選擇其中一行,併發出警告或錯誤否。
你會得到什麼錯誤?並且歡迎來到SO – Jonnny
其實,只是簡要地看一下update語句看起來有效 - 哦,並且請用4個空格來表示你的代碼,這樣它就會全部被_pretty-fied _--一個很好的SQL資源[w3schools.com] (http://w3schools.com/sql/default.asp) –
您可能可以使用'FROM' - 這取決於您使用的方言。 [tag:sql]標籤用於標準語言。你能爲你的特定數據庫添加一個標籤嗎? –