日期:2014-05-18  浏览次数:20767 次

求知
A有两个一度好友(B、C)而B、C各有三个一度好友,求A有几个二度好友?
  例如:
  如果A有两个一度好友B、C
  而B有三个一度好友C、E、F
  C也有三个一度好友D、B、H
  则EFDH是A的二度好友,要求用一个SQL语句查询出二度好友,这是一个面试题。

------解决方案--------------------
看不明白
------解决方案--------------------
select * from Tb where parentid in (select id from tb where parentid='A')
------解决方案--------------------
正好我也想问问。

照如梦的语句来写,两级没问题,但是今天我碰到的是多级的。
不只有两级的。

可能要查出A的四度好友。

怎么弄?
------解决方案--------------------
select * from table where Id in (select FirendId from table where id='A')
------解决方案--------------------
上面的Sql似乎没有排除BC这两个A的1度好友和A自己!

如果四度的话,只能建树了,指数级的!
------解决方案--------------------
探讨
正好我也想问问。

照如梦的语句来写,两级没问题,但是今天我碰到的是多级的。
不只有两级的。

可能要查出A的四度好友。

怎么弄?

------解决方案--------------------
如果是几度之间互相有交叉的话,只能用图来做了,用树的话可能还存在一些问题!

探讨
正好我也想问问。

照如梦的语句来写,两级没问题,但是今天我碰到的是多级的。
不只有两级的。

可能要查出A的四度好友。

怎么弄?