आप CSV
. का उपयोग कर सकते हैं आईडी परिणाम जैसे:
SELECT *
FROM tblreport
WHERE FIND_IN_SET(ID,(SELECT GROUP_CONCAT(lv SEPARATOR ',') FROM (
SELECT @pv:=(SELECT GROUP_CONCAT(ID SEPARATOR ',')
FROM tblreport WHERE ParentID IN (@pv)) AS lv FROM tblreport
JOIN (SELECT @pv:=1)tmp
WHERE ParentID IN (@pv)) a));
आउटपुट:
ID Name ParentID
2 2nd 1
3 3rd 1
4 4th 2
संपादित करें:
यदि आपको मूल पंक्ति की भी आवश्यकता है तो आप UNION ALL
. का उपयोग कर सकते हैं :
SET @var = 1;
SELECT *
FROM tblreport
WHERE FIND_IN_SET(ID,(SELECT GROUP_CONCAT(lv SEPARATOR ',') FROM (
SELECT @pv:=(SELECT GROUP_CONCAT(ID SEPARATOR ',')
FROM tblreport WHERE ParentID IN (@pv)) AS lv FROM tblreport
JOIN (SELECT @pv:[email protected])tmp
WHERE ParentID IN (@pv)) a))
UNION ALL
SELECT *
FROM tblReport
WHERE ID = @var
ORDER BY ID;