现在可以拉取数据,但是想知道是否有更好的方法来优化大型数据集的查询。
http://sqlfiddle.com/#!4/0ef0c/5
所以基本上我希望能够为给定的组织 ID 提供查询,并让它递归地拉取它的 parent 、 child 、 sibling 和阿姨和叔叔。然后提取与该组织层次结构关联的任何事件。
Org1 是顶级组织,但它可能有也可能没有空父级。
基本上我正在做一个上下查询来拉 child 和 parent ,但似乎只能通过添加另一个查询来获取 sibling 。终于在 friend 的帮助下进行了另一个查询,但它在大型数据集(4-5k 的事件)上非常低。
任何见解将不胜感激。
最佳答案
如果您的组织。结构是严格分层的,那么您可以使用这种方法:
http://www.ibase.ru/devinfo/DBMSTrees/sqltrees.html
缺点是您必须在每次更新组织结构时更新索引。然而,组织结构通常被更频繁地阅读然后修改。所以恕我直言,这应该可以解决问题。
关于sql - 分层查询需要拉 child 、 parent 和 sibling ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13655400/