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