使用SQL在具有重复数据的表之间插入

droberts643

我的数据结构如下:

Table 1 - Employee</b>

-ID
-Name
-Address
-City
-State
...

Table 2 - Audit

-Address
-City
-State
...

我需要通过较小审计表中地址,城市和州与较大雇员表中的地址信息进行匹配(假设没有雇员共享地址),将雇员表中的相应ID插入审计表中。

这是我一直在使用的代码,查询生成了我想要的数据,但是更新,设置序列失败并显示以下消息:

消息512,级别16,状态1,行1子查询返回的值大于1。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。

UPDATE AuditTable SET employee_id = (
    SELECT e.employee_id 
    FROM EmployeeTable e 
    JOIN AuditTable a
        ON  e.address = a.address
        AND e.home_city = a.home_city
        AND e.home_st = a.home_st
)

同一名员工需要能够在审核表中重复多次,并且仍然显示相同的ID,这导致了我的问题。我已经尝试将=替换IN在我的select语句中使用TOP 1,但是没有运气得到我需要的东西。

专线小巴

您的查询的问题是子查询与正在更新的表相关,因此它会生成多个记录。

如果中没有(address, home_city, home_st)元组重复项Employee,则可以使用简单的相关子查询:

UPDATE AuditTable SET employee_id = (
    SELECT e.employee_id 
    FROM EmployeeTable e 
    WHERE 
        e.address = AuditTable.address 
        AND e.home_city = AuditTable.home_city 
        AND e.home_st = AuditTable.home_st
)

如果可能发生重复,则可以使用TOP 1或聚合函数,例如MAX()

UPDATE AuditTable SET employee_id = (
    SELECT TOP 1 e.employee_id 
    FROM EmployeeTable e 
    WHERE 
        e.address = AuditTable.address 
        AND e.home_city = AuditTable.home_city 
        AND e.home_st = AuditTable.home_st
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除具有重复数据VBA的行

来自分类Dev

SQL将数据插入表中具有外键

来自分类Dev

重复数据删除SQL Server表

来自分类Dev

SQL Server重复数据

来自分类Dev

连接我们要连接的两列中具有重复数据的两个表

来自分类Dev

从具有重复数据的行中复制特定的列

来自分类Dev

我可以从多个表中检索没有重复数据或多个查询的数据吗?

来自分类Dev

如何使用Java SQL将具有不同数据类型的数据库表插入

来自分类Dev

在具有重复数据的表中选择具有最小值的行

来自分类Dev

创建具有不同ID的重复数据帧

来自分类Dev

使用插入后触发器防止出现重复数据

来自分类Dev

无法获得具有等级的重复数据删除记录

来自分类Dev

生成具有随机非重复数字的Lua表

来自分类Dev

使用具有列映射的数据表更新/插入到SQL表

来自分类Dev

SQL将数据插入表中具有外键

来自分类Dev

SQL中的重复数据

来自分类Dev

数据重复数据并插入(不重复)后的MYSQL

来自分类Dev

ContentResolver插入重复数据

来自分类Dev

使用字符串方法处理内部html,然后将其放置在具有重复数据的页面中

来自分类Dev

在熊猫中旋转具有重复数据的表

来自分类Dev

使用mysql查找表中的重复数据

来自分类Dev

将非重复数据插入表

来自分类Dev

避免通过具有多个工作程序的Entity Framework在sql表中插入重复项

来自分类Dev

通过 VBA 在 Excel 数据透视表中显示具有重复数量的重复行

来自分类Dev

具有重复数据的数据库表设计

来自分类Dev

使用django时如何保证没有重复数据?

来自分类Dev

从重复数据中选择到具有唯一行的简化表

来自分类Dev

数据没有被插入到我的 SQL 表中,但它也说有重复的主键

来自分类Dev

关于重复数据的 SQL

Related 相关文章

  1. 1

    删除具有重复数据VBA的行

  2. 2

    SQL将数据插入表中具有外键

  3. 3

    重复数据删除SQL Server表

  4. 4

    SQL Server重复数据

  5. 5

    连接我们要连接的两列中具有重复数据的两个表

  6. 6

    从具有重复数据的行中复制特定的列

  7. 7

    我可以从多个表中检索没有重复数据或多个查询的数据吗?

  8. 8

    如何使用Java SQL将具有不同数据类型的数据库表插入

  9. 9

    在具有重复数据的表中选择具有最小值的行

  10. 10

    创建具有不同ID的重复数据帧

  11. 11

    使用插入后触发器防止出现重复数据

  12. 12

    无法获得具有等级的重复数据删除记录

  13. 13

    生成具有随机非重复数字的Lua表

  14. 14

    使用具有列映射的数据表更新/插入到SQL表

  15. 15

    SQL将数据插入表中具有外键

  16. 16

    SQL中的重复数据

  17. 17

    数据重复数据并插入(不重复)后的MYSQL

  18. 18

    ContentResolver插入重复数据

  19. 19

    使用字符串方法处理内部html,然后将其放置在具有重复数据的页面中

  20. 20

    在熊猫中旋转具有重复数据的表

  21. 21

    使用mysql查找表中的重复数据

  22. 22

    将非重复数据插入表

  23. 23

    避免通过具有多个工作程序的Entity Framework在sql表中插入重复项

  24. 24

    通过 VBA 在 Excel 数据透视表中显示具有重复数量的重复行

  25. 25

    具有重复数据的数据库表设计

  26. 26

    使用django时如何保证没有重复数据?

  27. 27

    从重复数据中选择到具有唯一行的简化表

  28. 28

    数据没有被插入到我的 SQL 表中,但它也说有重复的主键

  29. 29

    关于重复数据的 SQL

热门标签

归档