我正在解决一个问题,到目前为止,我能想到的唯一解决方案是使用带有 select 语句的 while 循环,但我正在寻找替代方案。情况是使用的一个表不使用更新语句来保存记录,当更新记录时,会插入一条带有信息的新记录并分配一个新的主键。我的任务是使用任何主键来提取先前键的历史记录,这将通过一个由三列 table_PK、updatedFrom_id 和 updatedTo_id 组成的新表来处理。
任何人都知道如何避免使用while循环来选择所有相互关联的id?可以出现在任一列中,但如果没有更新,则不会出现在任一列中,并且对于可以更新的次数没有限制,并且该语句应该能够检索更新的内容和如果它已更新它已更新到什么。
提前感谢您的帮助!
更新信息:
桌子
UpdateLinking
列:
UpdateLinking_PK,
UpdatedFrom_id,
UpdatedTo_id
示例数据:
UpdateLinking_PK UpdatedFrom_id UpdatedTo_id
77 11 22
78 22 33
79 33 44
80 44 55
81 55 66
UpdateFrom 和 UpdateTo 都是来自单独表的键,实际上可以向该表中的列添加更新,但由于大小和它不会被大量使用,将单独列出更新。我想输入 UpdateFrom 或 UpdateTo id 并返回 updatedFrom 和 updatedTo。如果输入的 Id 参数在 updatedTo 中,我想检查它是否在 updatedFrom 列中并跟随它,直到最后一个 UpdatedTo id 没有出现在 updatedFrom 列中,反之亦然。
输入上述任何 id 的结果集应返回 UpdatedFrom_id 中的所有内容和 UpdatedTo_id 列中的所有内容。
如果添加了一行:
UpdateLinking_PK UpdatedFrom_id UpdatedTo_id
82 88 111
如果传递的 parameterId 为 44,则应排除此项