Recursie in SQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wim E

Wim E

22/04/2012 00:41:46
Quote Anchor link
Beste allemaal,

Ik heb een tabel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
id   name   parent_id
1    A      0
2    B      1
3    C      1
4    D      2
5    E      4
6    F      0


Wanneer ik nu als resultaat: A B C D E
Met andere woorden, ik wil de parent hebben (1) met al zijn childeren en daar weer zijn childeren van etc.

Wanneer ik resultaat op vraag van C krijg ik enkel deze
maar wanneer ik dus D op vraag krijg ik D E

Kortom, positie met childeren.

Iemand idee hoe dit mogelijk is?
Gewijzigd op 22/04/2012 00:44:59 door Wim E
 
PHP hulp

PHP hulp

29/03/2024 11:49:16
 
Jelmer -

Jelmer -

22/04/2012 10:49:17
Quote Anchor link
Ik kan helaas even geen betere uitleg vinden, maar op PFZ staat een redelijk overzicht: http://www.pfz.nl/wiki/hierarchie-in-een-database/
Gewijzigd op 22/04/2012 10:49:59 door Jelmer -
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

22/04/2012 13:58:30
 
Wim E

Wim E

22/04/2012 16:27:38
Quote Anchor link
@Jelmer, dankje voor de link. Ik heb de artikelen gelezen maar kan er 1,2,3 niet echt heel veel mee.

@Ger, Bedankt voor de suggestie, echter is dit niet wat ik zoek.

Ik kan recursie en snap de principes. Mij ging het (zoals je ook in mijn titel ziet) recursie in SQL. Ik wil gewoon niet te vaak een request op de database doen en het liefst de database zelf het laten oplossen.

Wellicht even een ruwe schets om probleem in algemeen te verduidelijken.
Ik heb een arrangement, deze bestaat uit een verzameling van producten.
Een product kan onderdeel van een groter product zijn. Dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
Arrangement: Picknick met fietsen
Producten zijn:
- fiets
- picknick
- - brood
- - melk
- - boter
- - jam


Nu wil ik op basis van deze producten mensen de mogelijkheid geven mutaties te maken op een arrangement. Met andere woorden, in de picknick willen ze ipv brood, bolletjes.

Om gebruikers de juiste keuze te geven voor het verwisselen heb ik product categorieën zodat ik in mijn code kan afdwingen dat bij het wijzigen van een product, of toevoegen restricties kan opleggen in mijn view logica.

Iemand idee?

Toevoeging op 23/04/2012 09:26:05:

Bump
 
Wim E

Wim E

24/04/2012 10:29:48
Quote Anchor link
Bump
 
Q S

Q S

24/04/2012 11:13:46
Quote Anchor link
Kun je hier niet wat mee? Uitgaande van je eerste voorbeeld

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT a.id, a.name, b.name, c.name, d.name
FROM test a
LEFT OUTER JOIN test b ON a.id= b.parentid
LEFT OUTER JOIN test c ON b.id= c.parentid
LEFT OUTER JOIN test d ON c.id= d.parentid
where a.id = 1
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

24/04/2012 19:19:17
Quote Anchor link
Dit zou kunnen werken als je weet hoeveel niveaus je diep kunt gaan, op het moment dat het niet zo is zal je dat als je de logic in de database wilt houden moeten oplossen met stored routines.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.