在PostgreSQL数据库中,寻找解决方案以检查给定的2条记录是否具有父级和第N个子级关系。
有以下表格布局,
@Entity
public class Employee {
@Id
@GeneratedValue(...)
private Long idNumber;
private String empName;
private Long managerId;
}
假设我们有以下格式的表数据,
+----------+---------+-----------+
| idNumber | empName | managerId |
+----------+---------+-----------+
| 1 | Emp1 | NULL |
| 2 | Emp2 | 1 (Emp1) |
| 3 | Emp3 | 1 (Emp1) |
| 4 | Emp4 | 2 (Emp2) |
| 5 | Emp5 | 4 (Emp4) |
+----------+---------+-----------+
如果我们获得“Emp1”和“Emp5”的输入ID,则使用单个SQL查询可以确定“Emp1”是否是“Emp5”的超级父级。
我找到的一个选项是使用“WITH RECURSIVE”选项检索所有Nth Level记录。
http://www.postgresqltutorial.com/postgresql-recursive-view/
这需要加载所有中间数据。
想要检查是否有更好的方法来检查2 N级记录之间是否存在关系。仅使用布尔标志查找直接关系。不需要显示任何中间行。
由于