2013-07-29 267 views
0

作爲SQL新手,請您指出正確的方向。我知道以下是錯誤的,但我不知道爲什麼。基於另一個表更新字段

UPDATE cus 
SET cus.leg_no = new.leg_no 
WHERE cus.c_no = new.c_no 

cus表目前在leg_nonull。我想從new表中更新它。我將加入c_no這兩個表。

我已經嘗試搜索網頁,但我越來越困惑。這導致我認爲我需要FROM,但有些東西告訴我這是在使用SELECT而不是UPDATE時。

+2

你會得到什麼錯誤?並且歡迎來到SO – Jonnny

+0

其實,只是簡要地看一下update語句看起來有效 - 哦,並且請用4個空格來表示你的代碼,這樣它就會全部被_pretty-fied _--一個很好的SQL資源[w3schools.com] (http://w3schools.com/sql/default.asp) –

+0

您可能可以使用'FROM' - 這取決於您使用的方言。 [tag:sql]標籤用於標準語言。你能爲你的特定數據庫添加一個標籤嗎? –

回答

0
UPDATE cus,new 
SET cus.leg_no = new.leg_no 
WHERE cus.c_no = new.c_no 
0

下面是做到這一點的標準方式:

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訪問方式表單時,系統會隨意選擇其中一行,併發出警告或錯誤

相關問題