SQL Join重复项,转换访问数据库

时间:2016-02-09 02:26:09

标签: php mysql join duplicates

我正在将访问数据库转换为新格式。目前所有数据都存在于MySQL中。

就本问题而言,有3个表格。 tbl_Bills tbl_Documents tbl_Receipts

我写了一个外连接查询,因为有些账单有文件和收据,其他则没有。考虑到这些情况,我需要一个完整的每个集合列表,稍后将通过php脚本进行处理。

问题是主要标识符,我们称之为 fld_CommonID​​ ,碰巧重复存在。例如,3张钞票具有相同的标识符,具有不同的信息。 3份文件和3份收据与这3份账单相符。 正如您可能已经猜到的那样,当我应该有3个(每个表中有一个连接)时,我的连接查询会产生9个不明显的行(6个重复)。内部联接排除了未在另一个表中定义的数据,因此不能满足我的需求。

所以...我正在考虑我想做什么,更新每个表中的3条记录(跨所有具有重复项的行),以便它们具有唯一的计数器ID。分别为#1,#2和#3,这样我就可以每行唯一地对它们执行连接查询。

是否可以在不运行php代码的情况下选择按自然表顺序排序的重复项,然后用计数器更新它们? 如果可以进行这样的查询,你会建议我去那条路线(脚本化)而不是一些神奇的SQL查询来做这样的事情吗? 或者是否可以根据自然表顺序进行外连接(非常确定这是不可能的)?

1 个答案:

答案 0 :(得分:0)

写这个答案只是简单地关闭问题。

如果有一种方法可以根据自然顺序(没有主键)链接单独表中的重复字段,那么内连接将是完美的。问题不在于我缺乏查询,而是数据库结构不良。使用代码而非复杂查询可以更好地解决哪个问题。