我來自C#linq背景,所以我試圖學習SQL。 我想要一個簡單的子查詢,它將使用與[User]表中的ContactID對應的新UserID更新[AccountContact]表中的多個記錄。 我不想使用連接。使用SQL子查詢錯誤更新多條記錄時出錯
我的代碼如下提前
UPDATE [dbo].[AccountContact]
SET UserID = (SELECT UserID from [User] WHERE ContactID IS NOT NULL),
ContactID = null
GO
由於通過運行此代碼我得到錯誤
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
你''(SELECT UserID from [User] WHERE ContactID IS NOT NULL)'返回多個值,你只需要一個。新用戶如何確定? – Milen
你能提供一些樣本數據和期望的結果嗎? –
我知道它返回的值超過1,它需要更新AccountContact表中的數千個用戶ID。 @ Nadeem你的查詢確實是我的只是一個更長的版本:) 幾乎我需要的是更新我的AccountContacts表。 在我的[用戶]表中我有2列UserID和ContactID。 在我的[AccountContact]表中,我有2列UserID和ContactID。 此查詢應該將[AccountContact]表中的所有UserID設置爲[User]表中相應的ContactID。 但是,因爲我正在返回超過3000行記錄,我得到上述錯誤。 – user3236075