【发布时间】:2015-06-14 03:56:44
【问题描述】:
假设我有下表:
| ID | col1_fix | col2 | col3 | ref_ID
1 val1 val12 val13
2 val2 val22 val23 1
3 val3 val32 val33
我应该使用什么语句输出到:(行 id=2 具有 ref_id = 1 所以不是获取其值,而是从行 id=1 获取值,但我想保留来自行 id= 的 col1_fix 值2,所以这一行最终只会从行 id = 1 获取 col2 和 col3 值)
| ID | col1_fix | col2 | col3 |
1 val1 val12 val13
2 val2 val12 val13
3 val3 val32 val33
我正在考虑创建一个视图,以便它加入自己的表,不确定方向是否正确)。
【问题讨论】:
-
那么,如果它包含 2 行或更多行,这就是您想要的? 100 万行你想要前 2 个加倍排序,然后是 999998?
-
听起来像一个简单的
SELF OUTER JOIN和CASE -
我想获得相同的行数。但是,如果该行有一个 ref_id,而不是从一行中选择值,那么它将选择(部分)具有 id = ref_id 的其他行。所以如果有 100 万行,输出将是 100 万行
-
如果第 1 行的
ref_ID为 3,在您的示例中会发生什么?您是否需要遵循任意长的参考链?您的问题未详细说明,您需要考虑所有可能性并决定每种情况的所需内容。 -
实际上它们是一个“组”的一部分(还有其他ID用于跟踪但我没有列出)并且只能有一个唯一的ref_ID,因此不会有引用链。很抱歉造成混乱。