UPDATE [SRO_VT_ACCOUNT].[dbo].[SK_Silk] 
  set silk_own= silk_own+10 
  where SELECT UserJID,silk_own FROM [SRO_VT_SHARD].[dbo].[_OnOffline] a left join [SRO_VT_SHARD].[dbo].[_User] b on a.CharID = b.CharID where CStatus='ONline'
帮忙看看那怎么写WHERE SELECT的写法错误。应该怎么写
  

解决方案 »

  1.   

    你加后面SELECT 查询的用处是什么?完全没和表SK_Silk联系啊
      

  2.   

    SELECT UserJID,silk_own FROM [SRO_VT_SHARD].[dbo].[_OnOffline] a left join [SRO_VT_SHARD].[dbo].[_User] b on a.CharID = b.CharID where CStatus='ONline'
    查询出来的USERJID 等于[SRO_VT_ACCOUNT].[dbo].[SK_Silk](JID)那么就更新[SRO_VT_ACCOUNT].[dbo].[SK_Silk](silk_ownSILK_OWN数据+10
      

  3.   

    try this,UPDATE [SRO_VT_ACCOUNT].[dbo].[SK_Silk]  
    set silk_own= silk_own+10  
    where JID in
    (SELECT UserJID 
    FROM [SRO_VT_SHARD].[dbo].[_OnOffline] a 
    left join [SRO_VT_SHARD].[dbo].[_User] b on a.CharID = b.CharID 
    where CStatus='ONline')
      

  4.   

    UPDATE s 
      set s.silk_own= t.silk_own+10  --此处不确定你是要用哪一个的 silk_own,是s还是t,你自己改就好了
      from [SRO_VT_ACCOUNT].[dbo].[SK_Silk] s
      join (
       SELECT UserJID, silk_own 
       FROM [SRO_VT_SHARD].[dbo].[_OnOffline] a 
       left join [SRO_VT_SHARD].[dbo].[_User] b 
       on a.CharID = b.CharID where CStatus='ONline'
       ) t
    on s.JID = t.UserJID