Mysql 如何在递归情况下找到某列的MAX()?

Mysql 如何在递归情况下找到某列的MAX()?,mysql,sql,Mysql,Sql,我有一个MySQL 5.1数据库和这个表(意译) 因此,合同可以通过parent\u id建立父子关系,并且可以有多个嵌套级别 如果某个合约的id为1,那么我如何编写查询来查找该合约及其子代的最后一个结束日期 (如果能获得合同的idend\u date,那也太好了)SQL中的递归可能很难实现-如果你也得到一个循环关系,会发生什么 我会考虑把关系分解成一个单独的表,明确地列出它们。 乙二醇 等等。这是一个有点工作,以保持他们的最新,但值得的努力。将契约加入到其所有父级也是一件简单的事情据我所知,您

我有一个MySQL 5.1数据库和这个表(意译)

因此,合同可以通过
parent\u id
建立父子关系,并且可以有多个嵌套级别

如果某个合约的id为
1
,那么我如何编写查询来查找该合约及其子代的最后一个
结束日期


(如果能获得合同的
id
end\u date
,那也太好了)

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

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

乙二醇


等等。这是一个有点工作,以保持他们的最新,但值得的努力。将契约加入到其所有父级也是一件简单的事情

据我所知,您不能,因为您需要多个查询。MySQL不支持递归CTE,但这里有一个使用存储过程的解决方案:啊,好的。然后,我将按照KeepCalmAndCarryOn的建议使用某种缓存列或表。
contracts
---------
id
parent_id
end_date
 contact_id     super_id     relationship
 1              10           Parent
 1              20           Grandparent
 10             20           Parent