SQL Update查询说明

时间:2017-08-02 22:42:17

标签: tsql sql-update correlated-subquery

如果有人能解释我下面的代码如何在内部工作,我将不胜感激。例如,如何评估条件的顺序。

 update br set ScannedId =
    (
    select top 1 Id from table1 sp (nolock)
     inner loop join table2 cp  (nolock) ON (sp.CPId = cp.CPID) 
     inner loop join table3 c  (nolock) ON (cp.CID = c.CId and c.endDate >= sp.CreatedDate and c.startDate <= sp.CreatedDate ) `enter code here`
     inner loop join table4 cc  (nolock) ON (c.CChannelID =`enter code here` cc.CChannelID)
     where (sp.UserId is null or sp.UserId = br.UserId) 
           and ((sp.Email = br.UserEmail)             
               or (sp.fName like br.UFName + '%' and sp.LName like br.ULName + '%' and sp.sHash = br.uHash)
               or (sp.fName like br.UFName + '%' and sp.Addrs = br.UOAddrs and sp.ZC = br.UOZ and sp.sHash = br.uHash))
       order by  cc.Rank, c.Rank, cp.Rank, sp.EDate desc, sp.CreatedDate desc
    )
    from channelnewlogic br where userId = 3637217

1 个答案:

答案 0 :(得分:0)

channelnewlogic中的行根据内部选择的结果更新其ScannedId列值。

相关问题