0

我正在尝试编写一种算法,该算法将帮助我找到通过多个表来获取查询数据的最佳路径。这些表具有相互关联的重叠变量。例如,我可能有这样的查询:

'选择 T1:F1 使得 T3:F6 > 0'

表是这样设置的:

表 1(T1):F1、F2

表2(T2):F2、F3、F4

表 3(T3):F4、F5、F6

其中为 F1 到 F6 的条目分配了值。因此,表 1 有 F1,而 F2 是它的兄弟。F2也在表2中,F4也是它的兄弟。F4也在表3中,F6是它的兄弟。

遍历表的正确方法是:T1:F1 -> T1:F2 -> T2:F2 -> T2:F4 -> T3:F4 -> T3:F6

有这样做的算法吗?似乎很难简单地搜索每个表的兄弟。似乎这将是某种树搜索算法,但我不知道如何设置树。

4

1 回答 1

0

在处理关系数据库时,最好考虑你想要什么而不是如何去做(算法)。在这种情况下,您想要的是:

select     T1.F1
from       T1 
inner join T2 on T1.F2 = T2.F2
inner join T3 on T2.F4 = T3.F4
where      T3.F6 > 0
于 2015-02-22T08:13:36.790 回答