前提:
(テーブル名はOperate_permissionです)
つまり、主キーとしてidがあり、parent_idは親のIDです。
/ ***************以下のフィールドは要件に応じて変更できますが、一致する必要があります*********** /
1.すべての子データをクエリする
1.1。ステートメントの子データ
SQLステートメントは次のとおりです。
WITH recursive cte as
(
select a.id,a.parent_id from operate_permission a where a.parent_id='1'
union all
select m.id, m.parent_id from operate_permission m INNER JOIN cte c ON c.id = m.parent_id
)
select id,parent_id from cte t;
1.2。結果:
2.自己データと親データをクエリする
2.1テーブル構造は変更されていません。コードは次のとおりです
WITH recursive cte as
(
select a.id,a.parent_id from operate_permission a where a.id='4'
union all
select m.id, m.parent_id from operate_permission m INNER JOIN cte c ON m.id = c.parent_id
)
select id,parent_id from cte t;
2.2結果は次のとおりです。
3.クエリ自体とすべてのサブセットデータ
3.1ステートメント
WITH recursive cte as
(
select a.id,a.parent_id from operate_permission a where a.id='1'
union all
select m.id, m.parent_id from operate_permission m INNER JOIN cte c ON c.id = m.parent_id
)
select id,parent_id from cte t;
3.2結果
残りの1つは、書き込みを行わないのと同様に、親のすべてのデータをクエリします。