找到所有后代

时间:2016-02-06 20:45:27

标签: sql postgresql hierarchical-data recursive-query

所以我正在学习一个期中考试,并且被困在这个练习题的第1和第3部分。

考虑以下关系:

家庭(父母,孩子,孩子,DOB)

意图是元组(p,c,d)表示父p有子c,谁出生于 日期d。您可以假设父母没有两个同名的孩子,
并且没有双胞胎;也就是说,没有父母有两个或两个以上的孩子出生 同一天。以下是我们可能会询问有关此数据的三个查询:

予。查找每个父母,即最小的孩子,即p(c,c)的集合,使得p具有 孩子c,没有其他p孩子的出生日期比c小。

II。找到一群伟大的祖父母“艾米。”

III。找到“迈克”的所有后代。

上述哪些查询可以在关系代数中表达出来?

到目前为止,第一个我有这个:

select
from family
group by parent

所以现在我知道我有一群父母,但我不知道如何选择最小的孩子

我通过使用2个子查询获得了第二个子查询,但是对于第三个子查询,我认为我不能再这样做,因为无法保证他的后代跨越多少代,所以我坚持那个我那个还没有任何东西

关于哪个可以用关系代数表达的最后一部分...是它们的全部吗?是否可以将所有SQL转换为关系代数?

感谢任何帮助

0 个答案:

没有答案