【发布时间】:2016-05-18 21:33:43
【问题描述】:
我正在将访问数据库转换为新格式。目前所有数据都保存在 MySQL 中。
就本问题而言,共有 3 个表格。 tbl_Bills、tbl_Documents 和 tbl_Receipts。
我写了一个外连接查询,因为有些账单有文件和收据,有些没有。考虑到这些情况,我需要每个集合的完整列表,以便稍后由 php 脚本处理。
问题在于,我们将调用 fld_CommonID 的主要标识符恰好重复存在。例如,3张钞票具有相同的标识符,具有不同的信息。 3 份文件和 3 份收据与这 3 份账单相符。 所以你可能已经猜到了,我的连接查询产生了 9 个模糊的行(6 个重复),而应该有 3 个(每个表一个连接)。内连接会排除其他表中未定义的数据,因此无法满足我的需求。
所以...我在想我想要做的是更新每个表中的这 3 条记录(跨所有具有重复项的行),以便它们具有唯一的计数器 ID。分别为#1、#2 和#3,这样我就可以对它们每行唯一地执行连接查询。
是否可以不运行 php 代码来选择按自然表顺序排序的重复项,然后用计数器更新它们? 如果可以进行这样的查询,你会建议我走那条路线(脚本)而不是一些神奇的 SQL 查询来做这样的事情吗? 或者是否可以根据自然表顺序进行外部连接(很确定这是不可能的)?
【问题讨论】:
-
呃,你的数据库是 MS Access 还是 MySQL?这些不一样。
-
MySQL 完全,我导入了访问数据库,这三个表上没有主键。它们使用自然表顺序进行管理,旧系统是一个 accde 访问脚本 gui,正在被网络软件取代。
-
我正在编写一个脚本来解决这个问题,并在没有连接的情况下拆分查询以手动映射它们。因此,尽管这是一个解决方案,但我仍然对您的专家对这种情况可能有的任何答案感到好奇。如果几天内没有问题,将关闭它。
标签: php mysql join duplicates