我正在将访问数据库转换为新格式。目前所有数据都存在于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查询来做这样的事情吗? 或者是否可以根据自然表顺序进行外连接(非常确定这是不可能的)?
答案 0 :(得分:0)
写这个答案只是简单地关闭问题。
如果有一种方法可以根据自然顺序(没有主键)链接单独表中的重复字段,那么内连接将是完美的。问题不在于我缺乏查询,而是数据库结构不良。使用代码而非复杂查询可以更好地解决哪个问题。