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