3
我有一张表,其中包含有关访问过哪个节点的数据。有可能多次访问一个节点。为此我有另一个表,其中包含访问节点,之前访问的节点和之后访问的节点的数据。我现在想用MySQL按访问顺序重建路径。我似乎无法弄清楚如何对此进行查询,所以我在这里寻求帮助。SQL节点路径重建
例
比方说有人在这个顺序访问这些节点:
4->5->6->7->4->6->10->12->7->15
的表是这样的:
访问
+---------+-------------------------------+----------+------------+
| id | user | node | view_count |
+---------+-------------------------------+----------+------------+
| 1 | l3lie1frl77j135b3fehbjrli5 | 4 | 2 |
+---------+-------------------------------+----------+------------+
| 2 | l3lie1frl77j135b3fehbjrli5 | 5 | 1 |
+---------+-------------------------------+----------+------------+
| 3 | l3lie1frl77j135b3fehbjrli5 | 6 | 2 |
+---------+-------------------------------+----------+------------+
| 4 | l3lie1frl77j135b3fehbjrli5 | 7 | 2 |
+---------+-------------------------------+----------+------------+
| 5 | l3lie1frl77j135b3fehbjrli5 | 10 | 1 |
+---------+-------------------------------+----------+------------+
| 6 | l3lie1frl77j135b3fehbjrli5 | 12 | 1 |
+---------+-------------------------------+----------+------------+
| 7 | l3lie1frl77j135b3fehbjrli5 | 15 | 1 |
+---------+-------------------------------+----------+------------+
重温
+---------+-------------------------------+-------+----------------+-----------------+
| id | user | node | after_visiting | before_visiting |
+---------+-------------------------------+-------+----------------+-----------------+
| 1 | l3lie1frl77j135b3fehbjrli5 | 4 | 7 | 6 |
+---------+-------------------------------+-------+----------------+-----------------+
| 2 | l3lie1frl77j135b3fehbjrli5 | 6 | 4 | 10 |
+---------+-------------------------------+-------+----------------+-----------------+
| 3 | l3lie1frl77j135b3fehbjrli5 | 7 | 12 | 15 |
+---------+-------------------------------+-------+----------------+-----------------+
我想建立一个查询将返回一个字符串的形式,或者类似这样的节点列表中的路径:
4,5,6,7,4,6,10,12,7,15
或
+---------+--------+
| index | node |
+---------+--------+
| 1 | 4 |
+---------+--------+
| 2 | 5 |
+---------+--------+
| 3 | 6 |
+---------+--------+
| 4 | 7 |
+---------+--------+
| 5 | 4 |
+---------+--------+
| 6 | 6 |
+---------+--------+
| 7 | 10 |
+---------+--------+
| 8 | 12 |
+---------+--------+
| 9 | 7 |
+---------+--------+
| 10 | 15 |
+---------+--------+
任何帮助将不胜感激。
你不能改变设计?最好是将所有访问和重访存储在没有'view_count'列的'visits'表中... – Aprillion 2012-04-03 10:25:01
借调。从其他方面来看,从原始路径获取统计数据要容易得多。 – 2012-04-03 10:27:21
+在本设计中,如果您访问6> 4> 7 3次,您无法区分它们(连接条件会重复三次) – Aprillion 2012-04-03 10:30:27