SQL:最合适的分层数据路径

时间:2016-01-19 23:23:52

标签: mysql sql hierarchical-data

我发现了一篇非常好的文章,它允许我创建SQL分层数据here。但是,这只是我想要解决的挑战的第一部分。我想只使用一个SQL语句或事务来搜索此数据中最适合的路径。

从链接我们有这棵树:下面的数据树,带有以下SQL表格表示。

data tree

+-------------+----------------------+-----+-----+
| category_id | name                 | lft | rgt |
+-------------+----------------------+-----+-----+
|           1 | ELECTRONICS          |   1 |  20 |
|           2 | TELEVISIONS          |   2 |   9 |
|           3 | TUBE                 |   3 |   4 |
|           4 | LCD                  |   5 |   6 |
|           5 | PLASMA               |   7 |   8 |
|           6 | PORTABLE ELECTRONICS |  10 |  19 |
|           7 | MP3 PLAYERS          |  11 |  14 |
|           8 | FLASH                |  12 |  13 |
|           9 | CD PLAYERS           |  15 |  16 |
|          10 | 2 WAY RADIOS         |  17 |  18 |
+-------------+----------------------+-----+-----+

让我们说我有输入:(电子,便携式电子,MP3播放器,FLASH)和另一个例子(电子,LCD)。

" 最佳契合路径的定义"是最长的路径,包括我指定的所有节点,它们从根节点建立一条完整的路径。

对于我的第一次输入,最佳杉木的路径是:

+----------------------+
| name                 |
+----------------------+
| ELECTRONICS          |
| PORTABLE ELECTRONICS |
| MP3 PLAYERS          |
| FLASH                |
+----------------------+

对于第二个输入:

+----------------------+
| name                 |
+----------------------+
| ELECTRONICS          |
+----------------------+

在第二个例子中,我们可以看到从根TECONICS到LCD没有完整的路径。

我想知道如何创建允许我这样做的SQL查询或事务。我允许修改表或添加新表,这将使这更容易。 如何为最适合的路径进行查询/交易?

0 个答案:

没有答案