簡體   English   中英

SQL Server 2005“更新自”查詢

[英]sql server 2005 'update from' query

我正在嘗試根據另一個表中的用戶ID更新表。 我遇到了語法更新,但是我在努力正確地編寫查詢。

以下代碼應向您顯示我正在嘗試做的事情。 當我運行它時,我得到0行影響。

    update jared_test
       set user_count  = 1
      from new_user nuj
inner join (select us.userID
              from users us
             where us.email = 'j@j.co.uk') u on nuj.userid = u.userid

/ * ** * ** * * 編輯 * ** * ** * ** * ** * ** * ** * \\

我發現Cursor循環存在問題,阻止了此工作,因此這確實有效。 但是,我想知道在這種情況下,哪里比哪里更好。

update jared_test
set user_count = 1
where userid = 
  (select userID from users where email = 'j@j.co.uk')

嘗試這個

您似乎並未在表“ jared_test”和您通過其選擇的兩個表“ new_user / nuj”和“ users / us”之間建立任何關系。

你是這個意思嗎

update nuj
set user_count  = 1
from new_user nuj
inner join (select us.userID
            from users us
            where us.email = 'j@j.co.uk') u on nuj.userid = u.userid

(如果是這樣,則@Devan建議的標准更新會更有意義)

我不是100%為何其他解決方案使用的子選擇會比常規聯接執行得最慢。 盡管taos subselect本質上是一個有趣的常規聯接。

update aliasName
set aliasName.user_count =1 
from new_user aliasName
inner join users u on aliasName.userid = u.userid
where email = 'j@j.co.uk'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM