sql - 删除 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
解决方案
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
)
推荐阅读
- vba - 如何通过 Visual Basic 设置 Windows 日期
- machine-learning - 图像的成对排名
- c++ - 如何限制计算的浮点值的小数位数?
- gremlin - How to increment an edge property counter in Gremlin graph
- google-compute-engine - GCE 实例的自定义元数据值是否安全存储?
- javascript - Javascript:通过其类名和类型同时获取输入
- python - Python:无法导入模块
- xml - 解析符合给定标准的一个孩子的 XML 和打印属性
- excel - VBA:具有两个工作簿的匹配功能
- webpack - 如何填写 Parcel Bundler?