用户的好友表如下:
user_firendlist(Id,userId,firendId)user_firendlist有12条记录如下:
Id userId firendId
0 1 3
1 1 4
2 2 3
3 2 6
4 3 5
5 3 6
6 4 5
7 4 2
8 5 2
9 5 7
10 6 7
11 6 8请构造最优化的SQL查询实现输出好友1和好友8之间的最短关系链,输出结果类似如下:
1->3->6->8关系链1->3->6->8的寓意:user1先通过user3找到user6,然后user1再通过user6找到user8。
user_firendlist(Id,userId,firendId)user_firendlist有12条记录如下:
Id userId firendId
0 1 3
1 1 4
2 2 3
3 2 6
4 3 5
5 3 6
6 4 5
7 4 2
8 5 2
9 5 7
10 6 7
11 6 8请构造最优化的SQL查询实现输出好友1和好友8之间的最短关系链,输出结果类似如下:
1->3->6->8关系链1->3->6->8的寓意:user1先通过user3找到user6,然后user1再通过user6找到user8。
MySQL中进行树状所有子节点的查询
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。 在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度是4, 那么所有节点为根的树的深度均不会超过4,则我们可以直接通过left join 来实现。 但很多时候我们...