2012-01-11 34 views
0

我試圖將表B_A中的電子郵件地址更新爲表A,如果電子郵件地址不同於表B_A與表A不同。使用UPDATE查詢時,多部分標識符無法綁定

我想查詢的是:

UPDATE A 
SET Email = (select [Email Address] from [B_A] where A.Email <> [B_A].[Email_Address]) 
where A.ID = [B_A].[ID] 

和我的錯誤是: the multi part identifier [B_A].[ID] could not be bound

我怎麼正常化這個查詢運行?

+0

有人請幫助我。 – SonalKhodiyar 2012-01-12 00:49:32

+0

你有關於你的模式的更多信息嗎? B_A是否有一個名爲「電子郵件地址」的列有一個空格,或者它應該只是電子郵件。 – Scott 2012-01-12 00:59:40

+0

我有2個表,A(ID,電子郵件),B_A(ID,電子郵件)。在A中,電子郵件被多次複製,因此我將A的ID與B_A的ID進行比較,並在ID相同且電子郵件地址不匹配時更新A的電子郵件地址。 – SonalKhodiyar 2012-01-12 01:01:51

回答

0

您的問題看起來像是在外部查詢中引用了內部查詢中的表。外部語句不知道B_A表,因爲您只在內部表中定義。

你可以嘗試這樣的事:

UPDATE A 
JOIN B_A on A.id = B_A.id 
SET A.email = B_A.email 
WHERE A.email <> B_A.email 

不知道UPDATE JOIN是SQL Server可用,但是語法將在其他DBS工作。

+0

我意識到這一點。但我一直無法找到合理的解決方案來解決這個問題。我對新的SQL查詢很少有經驗的工作,我一直無法解決這個問題。任何指導都會很有幫助。由於這不起作用,我必須通過使用單個更新設置命令來執行所有更新,以獲取我擁有的大型數據集。 – SonalKhodiyar 2012-01-12 01:06:20

+0

看到我有一個簡單的查詢可以更好地工作 – Scott 2012-01-12 01:08:53

+0

UPDATE編輯 JOIN B_A上A.id = B.id 它給了我錯誤附近有語法錯誤JOIN,說了B_A無效的列名.. – SonalKhodiyar 2012-01-12 01:12:25

相關問題