我有一个表,其中包含以下列方式相关的记录:
父母,孩子,孙子。
我希望能够运行查询来执行以下操作:
- 检索从特定记录派生的所有记录
- 检索作为特定记录的直接子项的所有记录(即只有直接子项)
- 检索作为特定记录的孙子的所有记录(即只有孙子)
- 检索记录的祖父母
- 检索记录的父项
- 检索所有记录(及其子孙)
我希望这个查询以排序的方式返回数据,这样我就可以创建一个结构化的文档(例如来自查询结果的 XML)。通过“排序”,我的意思是结果集是由父母“分组”的,然后是孩子,然后是孙子
我设计了一个像这样的简单表格(伪代码):
CREATE TABLE family_tree {id integer
, parent_id integer
, child_id integer
, fname varchar(16)
, lname varchar(32) };
我有几个问题:
(请记住我要运行的查询 [(1)-(6) 上面])这是最好的(即我可以使用的最有效的表结构?如果不是,什么是?
任何人都可以帮助我编写 ANSI SQL 语句来执行上述查询 (1)-(6) 吗?