私は次の表を持っています。sqlで再帰せずに親子のn番目のレコードを選択するには?
id | name | parent_id
----+--------------+-----------
1 | Cat |
2 | Fun | 1
3 | LOLCs | 2
4 | Anid | 2
5 | Cla | 1
6 | Rena | 5
.................................
Up to 'N' th Level
私はSQLでの再帰せずに親子供にnth
レコードを選択したいと思います。
誰かがこれを行う方法についていくつかのガイダンスを提供できますか?
なぜ再帰はありませんか?それから 'forループ'を使うことを考えますか? –
あなたのDBMSが再帰的なクエリやループをサポートしておらず、レベル数が少ない場合は、古典的な解決策があり、各レベルに対して別の 'left join on nextlevel.id = prevlevel.parent_id'を追加します。 – dnoeth
このような方法が可能な場合................ SELECT L0。* FROMテストL0 JOINテストL1 ON L0.Parent_Id = L1.Id JOINテストL2 ON L1 .ID = L2.Parent_Id WHERE L1.id = '1' UNION全て SELECT L1 * 試験に参加試験L0 FROM L1 ON L0.Id = L1.Parent_Id JOIN試験L2 ON L1.MnuId = L2 .ParentId JOINテストL3 ON L2.Parent_Id = L3.Id WHERE L1.Parent_Id = 1 ' – user6479492