nested setsまたはparent-childモデルのいずれかを使用する必要があります。
Parent-child:
typeid 親名
1 0 バイヤー
2 0 売り手
3 0 審判
4 1 電気
5 1 メカニック
SELECT *
FROM mytable
WHERE group IN
(
SELECT typeid
FROM group_types
START WITH
typeid = 1
CONNECT BY
parent = PRIOR typeid
)
は のすべての購入者を選択しますOracle。
Nested sets:
typeid 下位 上位 名前
1 1 2 バイヤー
2 3 3 売り手
3 4 4 レフェリー
4 1 1 電気
5 2 2 メカニック
SELECT *
FROM group_types
JOIN mytable
ON group BETWEEN lower AND upper
WHERE typeid = 1
任意のデータベース内のすべての購入者を選択します。
詳細については、この回答を参照してください。
Nested setsクエリはより簡単ですが、更新が難しく、ツリー構造を構築するのが難しくなります。