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,250
  • 2
  • 11
  • 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
  • 26,868
  • 11
  • 59
  • 105