2

我有一个带有这个表的 MySQL 5.1 DB(释义)......

contracts
---------
id
parent_id
end_date

所以合约可以通过 建立父子关系parent_id,并且可以有多层嵌套。

给定一些合同,id比如说1,我怎么能写一个查询来找到end_date它和它的后代中的最后一个?

id(用那个来获得合同的 s也很棒end_date。)

4

1 回答 1

1

SQL 中的递归可能很难实现——如果你也得到一个循环关系会发生什么?

我会考虑将关系分解成一个单独的表,明确列出它们。

例如

 contact_id     super_id     relationship
 1              10           Parent
 1              20           Grandparent
 10             20           Parent

等等。让它们保持最新是一项工作,但值得付出努力。与所有父母签订合同也是一件简单的事情

于 2013-06-21T01:19:56.230 回答