次のようなネストされた組織のセットがあります (ノードは組織 ID です)。
1234 は 4499 と 3322 の親ですが、9905 は 1234 の「関連」であり、実際には親でも子でもありません。
leftedge と rightedge のセットアップは次のようになると思います。
orgID | leftedge | rightedge
1234 | 1 | 6
4499 | 2 | 3
3322 | 4 | 5
9905 | 7 | 8
9905 は実際には 1234 の子ではないため、1234 と 9905 の間の関係を取得する方法がわかりません。子関係を取得するために使用する SQL は次のとおりです。
SELECT ost.orgid, ost.leftedge, ost.rightedge
FROM tbl_organisationsettree ost
JOIN tbl_organisationsettree AS child_ost ON child_ost.leftedge BETWEEN ost.leftedge AND ost.rightedge
AND child_ost.supersetid = ost.supersetid
WHERE 1
AND ost.leftedge > 1
AND ost.rightedge <6
GROUP BY child_ost.ID
HAVING COUNT(child_ost.ID) = 1