某一族谱表,已知其中任一辈份,求其直系上辈族树及其所有小辈

axolo 2008-09-07 10:08:03

+---------------------------+
| ID | PARENT | NAME |
+----+--------+-------------+
| 1 | 0 | 祖父 |
+----+--------+-------------+
| 2 | 1 | 父亲 |
+----+--------+-------------+
| 3 | 1 | 叔伯 |
+----+--------+-------------+
| 4 | 2 | 自己 |
+----+--------+-------------+
| 5 | 4 | 儿子 |
+----+--------+-------------+
| 6 | 5 | 孙子 |
+----+--------+-------------+
| 7 | 2 | 姐妹 |
+----+--------+-------------+
| 8 | 3 | 表亲 |
+----+--------+-------------+
| 9 | 7 | 甥儿 |
+----+--------+-------------+
| 10 | 4 | 女儿 |
+----+--------+-------------+
| 11 | 10 | 外孙 |
+----+--------+-------------+
| 12 | 5 | 孙女 |
+----+--------+-------------+
| .. | ... | .... |
+---------------------------+

以上为族系表family。

1、已知任一ID,求直系上辈族系树,如已知 ID=11, 返回

array(
array(11, 10, 外孙),
array(10, 4, 女儿),
array(4, 2, 自己),
array(2, 1, 父亲)
array(1, 0, 祖父)
)


2、已知任一ID,求其小辈列表,如已知 ID=4,返回

array(
array(4, 2, 自己),
array(5, 4, 儿子),
array(6, 5, 孙子),
array(12, 5, 孙女),
array(10, 4, 女儿),
array(11, 10, 外孙)
)
...全文
181 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
utpcb 2008-09-12
  • 打赏
  • 举报
回复
我的意思就是循环低轨
axolo 2008-09-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 utpcb 的回复:]
可能要用到循环哦
[/Quote]

循环还不管用,要用递归的
utpcb 2008-09-11
  • 打赏
  • 举报
回复
可能要用到循环哦
cuijie_cn 2008-09-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 trainee 的回复:]
在MYSQL没有现成的语句有这功能。
可能要自己定义存储过程。

这个算法叫做Bill of material算法,网上搜索一下。
[/Quote]

学习了 :)
axolo 2008-09-08
  • 打赏
  • 举报
回复
多句SQL也可以,只要结果集能得出正确结果即可。
上辈直系族系树顺序必须是从长到幼或从幼到长的顺序。
小辈结果集可以任意顺序。
trainee 2008-09-08
  • 打赏
  • 举报
回复
在MYSQL没有现成的语句有这功能。
可能要自己定义存储过程。

这个算法叫做Bill of material算法,网上搜索一下。
axolo 2008-09-07
  • 打赏
  • 举报
回复
求以上两问的SQL语句,请以一句MySQL语句来实现,不能以PHP或其它语言形式实现。

请注意,famliy表是无限族系表
直系上辈还有曾祖、曾曾祖……小辈还有曾孙、曾曾孙……等可能

56,912

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧