asステートメントを使用したSQL再帰クエリ

 

前提:

(テーブル名は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つは、書き込みを行わないのと同様に、親のすべてのデータをクエリします。

115件の元の記事を公開 58のよう 訪問数160,000+

おすすめ

転載: blog.csdn.net/luChenH/article/details/103574506