首页 > 解决方案 > MySQL - 如果列已满,则递归自联接

问题描述

对于我的产品表,我有以下(对于这个问题)重要的列:

{{id}} - primary
{{name}} - product name
{{successor}} - containing the previous id

出于历史原因,我插入新产品并通过后继列链接它们,而不是更新或删除该行(我的活动产品由“后继者为空”定义),所以我最终可能会得到如下内容:

1 - Dummy #1 - 3
2 - Dummy #2 - null
3 - Dummy #1 Updated - 4
4 - Dummy #1 Updated again - null

对于报告,我想选择包含其中一些产品的所有订单,但我也需要选择包含以前更新的产品的订单。

所以我正在寻找的是一种(可能直接在 MySQL 中)选择第 1 行和第 3 行的方法,尽管我的 where 子句看起来像“... where id = 4”,但对于我能够研究的内容,这似乎是不可能的。

所以一个简单的问题是:这可能吗?如果是的话,最好的方法是什么?

亲切的问候

标签: mysqlrecursionjoinself

解决方案


推荐阅读