sql - 从基于表的查询中排除数据对?
问题描述
我有一个庞大而混乱的设施数据库,其中有很多重复项。地址已经以如此随意的方式输入,我将进行许多查询以识别可能的重复项。我的目标是让每个查询识别可能的重复项,然后一个人实际浏览列表并将每个配对标记为“不重复”或“可能重复”。
当有人将设施对标记为不重复时,我想将该数据对记录在表中,以便当其中一个查询以其他方式返回该配对时,它会被排除在外。我不知道如何做到这一点。我目前正在使用 MS Access 进行 SQL 查询,并且具有基本的视觉基础知识。
它应该如何工作的示例 运行查询 1 以根据城市和公司名称查找重复项。它带回设施 1 和 2、3 和 4、5 和 6 可能重复。前两个配对是我需要修复的重复,但 5 和 6 确实是独立的设施。我点击记录,设施5和6不重复,将数据记录在一个表中。当查询 1 再次运行时,它不会返回 5 和 6 可能重复。
作为参考,地址重复看起来像这样,这就是为什么需要多个查询
Frank's Garage, 123 2nd St
Frank's Garage LLC, LLC, 123 Second st
Frank's Garage and muffler, 123 2nd Street
Frank's, 12 2nd st
任何帮助深表感谢!
解决方案
我知道解决此问题的唯一方法是创建一个公司名称主表,并将此表 PK 与原始表中的记录相关联。审查记录并从主记录中消除重复并将重复组的剩余 PK 与原始记录相关联(如您所见)将是一个困难而乏味的过程。
从原始表创建 DISTINCT 公司的主表和地址数据。包括自动编号字段以生成密钥。连接公司/地址字段上的表并使用此键更新原始表中的字段。在原始表中有另一个字段来接收替换外键。
在主表中有一个数字字段(ReplacementPK)。排序和查看记录并输入您要为公司/地址重复组保留的密钥。在原始关键字段上构建查询连接表,使用从主选择的 ReplacementPK 更新原始表中的 NewFK 字段。
当一切看起来不错时:
从原始表中删除公司和地址以及原始 FK 字段。
从主库中删除 PK 与 ReplacementPK 不匹配的记录。
推荐阅读
- haskell - 在构建组件之前运行自定义的每个组件`IO()`,与实际构建交错
- html - 当鼠标离开元素时如何设置悬停过渡
- primeng - 如何使用下拉列表过滤 primeNG 表并仅在按下应用按钮时应用过滤器?
- excel - 使用 VBA 将 Excel 范围从不同的工作表循环复制到 Word 文件时遇到问题
- javascript - 获取特定列表的值
- 项目
- php - 如果 booking_endDate 小于当前日期,则更新数据
- angular - 如何使用 jasmine 为注销服务正确编写单元测试?
- sql - Postgres - 计数跨更多表
- python - 施工后坚持 GradientTape
- azure-active-directory - 请求访问令牌 MS Graph 时的 Invalid_grant