Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 当电子邮件位于另一个表上时,如何更新表?_Sql_Sql Server_Sql Update - Fatal编程技术网

Sql 当电子邮件位于另一个表上时,如何更新表?

Sql 当电子邮件位于另一个表上时,如何更新表?,sql,sql-server,sql-update,Sql,Sql Server,Sql Update,我想更新一些用户的信息,当他们在另一个表上有电子邮件时。但是这个查询更新了所有用户,不知道出了什么问题,你能帮我吗?谢谢,显式连接会更好吗?只是猜测,不确定这些数据中到底有什么。。。 像 最后,我可以用另外一个条件来解决这个问题。结果如下: USE [ASPDryrun] GO UPDATE [dbo].[Users] SET [ID] = [IU].[PersNo], [CostCenter] = [CC].[CostCenterID], [O

我想更新一些用户的信息,当他们在另一个表上有电子邮件时。但是这个查询更新了所有用户,不知道出了什么问题,你能帮我吗?谢谢,显式连接会更好吗?只是猜测,不确定这些数据中到底有什么。。。 像


最后,我可以用另外一个条件来解决这个问题。结果如下:

USE [ASPDryrun]
GO

  UPDATE [dbo].[Users]
    SET [ID] = [IU].[PersNo], 
        [CostCenter] = [CC].[CostCenterID], 
        [OrgUnit] = [OU].[OrgUnitID]
   FROM [dbo].[Users], 
        join [dbo].[Import_UserData] AS [IU] on [IU].[CorporateEmail]=users.[email]
        join [dbo].[CostCenters] AS [CC] on [CC].[ID] = [IU].[CostCtr]
        join [dbo].[OrgUnits] AS [OU] on [OU].[ID] = [IU].[OrgUnit]

您没有任何将
dbo.Users
表与查询中的其他表关联的联接条件。也许我应该添加此条件:
和[IU].[CorporateEmail]=[dbo].[Users].[Email]
Email是唯一的比较字段
USE [ASPDryrun]
GO

  UPDATE [dbo].[Users]
    SET [ID] = [IU].[PersNo], 
        [CostCenter] = [CC].[CostCenterID], 
        [OrgUnit] = [OU].[OrgUnitID]
   FROM [dbo].[Users], 
        join [dbo].[Import_UserData] AS [IU] on [IU].[CorporateEmail]=users.[email]
        join [dbo].[CostCenters] AS [CC] on [CC].[ID] = [IU].[CostCtr]
        join [dbo].[OrgUnits] AS [OU] on [OU].[ID] = [IU].[OrgUnit]
USE [ASPDryrun]
GO
        UPDATE [dbo].[Users]
        SET [ID] = [IU].[PersNo],
            [CostCenter] = [CC].[CostCenterID],
            [OrgUnit] = [OU].[OrgUnitID]
        FROM [dbo].[Import_UserData] AS [IU],
             [dbo].[CostCenters] AS [CC],
             [dbo].[OrgUnits] AS [OU],
             [dbo].[Users] AS [U]
        WHERE [CC].[EricssonID] = [IU].[CostCtr]
          AND [OU].[EricssonID] = [IU].[OrgUnit]
          AND [IU].[CorporateEmail] = [U].[Email]
        GO