J'ai besoin d'aide ici.Besoin d'aide pour créer une procédure
Ma table est
CREATE TABLE `users` (
`id` bigint(11) NOT NULL auto_increment,
`point` bigint(11) NOT NULL,
`lefth` bigint(11) NOT NULL,
`righth` bigint(11) NOT NULL,
`referel` bigint(11) NOT NULL,
`dateadded` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=21 ;
données
INSERT INTO `users` VALUES (1, 1000, 2, 4, 1, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (2, 0, 3, 5, 1, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (3, 0, 6, 9, 1, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (4, 0, 14, 7, 1, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (5, 0, 8, 0, 2, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (6, 0, 0, 0, 3, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (7, 0, 15, 19, 4, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (8, 0, 10, 11, 5, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (9, 0, 0, 0, 3, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (10, 0, 0, 0, 8, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (11, 0, 12, 13, 8, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (12, 0, 0, 0, 11, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (13, 0, 0, 0, 11, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (14, 0, 16, 17, 4, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (15, 0, 0, 0, 7, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (16, 0, 0, 0, 4, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (17, 0, 0, 18, 14, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (18, 0, 0, 0, 17, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (19, 0, 20, 0, 7, '0000-00-00 00:00:00');
INSERT INTO `users` VALUES (20, 0, 0, 0, 19, '0000-00-00 00:00:00');
Je veux écrire une procédure en fournir une valeur en tant que paramètre renverra toutes les valeurs forment la table qui est à venir sous la paramètre passé.
quelque chose comme ça
DELIMITER $$
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `emp_heir`(
IN param1 INTEGER(11)
)
BEGIN
select lefth from users where id = param1;
END$$
Ceci renvoie la valeur dans la lefth colonne, mais si la valeur lefth est d'avoir des valeurs de l'enfant (valeurs en lefth et righth de cet identifiant) il doit retourner que aussi . Comme sage, il devrait continuer jusqu'à la fin de la table.
Comment cela peut-il être fait?
Merci
Pourriez-vous s'il vous plaît corriger la mise en forme de votre question? – Bobby