首页 > 解决方案 > 删除 Postgres 中的重复行

问题描述

我有两张桌子:

员工:

ID 姓名
143 艾米 花卉
245 娜塔莎 史密斯
365 约翰 亚历山大
445 娜塔莎 史密斯
565 莫妮卡 怀豪斯
644 艾米 花卉
1023 艾米 亚历山大

和employee_details:

ID 员工ID 文档编号
1 644 XXXXXXXXX
2 245 XXXXXX
3 365 XXXXXX

我需要删除 Employee 表中与employee_details 表无关的重复记录。在示例数据中,我想删除 id 为 143 和 445 的员工 doublet。

我必须承认我不知道该怎么做。你能给我一个提示吗?基础是postgres

标签: sqlpostgresql

解决方案


Delete from Employee
Where id not in (
   Select Employee_id 
   from employee_details
)
and name in (
  Select name 
  from Employee
  Group by name having count(name) > 1
)

推荐阅读