Bonjour,
j'ai une table de hiérarchique dont voici la structure sql :
Le champ 'parent' référence le champ 'id' de cette même table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE TABLE `sujets` ( `id` int(9) unsigned NOT NULL auto_increment, `nom` varchar(50) NOT NULL, `parent` int(9) unsigned default NULL, `description` text NOT NULL, `uri` varchar(50) NOT NULL, PRIMARY KEY (`id`), KEY `parent` (`parent`,`uri`), FULLTEXT KEY `nom` (`nom`,`description`,`uri`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=52 ;
J'ai défini un enregistrement racine comme étant un enregistrement dont le parent est NULL. Et je voudrais connaître l'ensemble des enregistrements qui ont pour ancêtre (et non seulement pour parent direct) un élément quelconque (ici racine, mais ça peut ne pas l'être). Attention, il n'y a pas qu'un enregistrement racine. J'ai actuellement six enregistrements racines, mais ce chiffre peut varier.
Aidez-moi car je ne vois pas comment faire de la récursion en SQL pour aller chercher tous les enfants.
Et en annexe, j'utilise une base MySQL 5.1 depuis quelques jours alors que je n'ai pas travaillé avant sur MySQL depuis la v4.0. Est-ce que les clés étrangères fonctionnent correctement maintenant ?
En vous remerciant d'avance,
Olivier
Partager