0

I have a table with Id,Name and ParentId, like this

Id      Name      ParentId
----+----------+---------
 1      jijo        0
 2      arjun       1(Id)
 3      dijo        2(Id)

when I write a condition Id=3 ,I want to get all the child rows. I try many codes, but unlucky....

DELIMITER //
DROP PROCEDURE IF EXISTS `view_master_data_child_rows` //
CREATE  PROCEDURE `view_master_data_child_rows`(IN SearchID INT) 
  DECLARE ParentId INT DEFAULT SearchID;

  IF ParentId != 0 THEN
    SELECT `ParentId ` INTO ParentId FROM master_data WHERE `Id` = ParentId;
    CALL view_master_data_child_rows(ParentId);
  END IF;

END //
DELIMITER ;

Thanks.

JIJOMON K.A
  • 1,290
  • 3
  • 12
  • 29

1 Answers1

0

Try Self Join

SELECT A.Id, A.Name,B.ID, B.Name
FROM master_data AS A
LEFT JOIN master_data AS B ON A.Id = B.ParentId
WHERE A.Id = 3;
Vignesh Kumar A
  • 27,863
  • 13
  • 63
  • 115