Select *From Parent P1LEFT JOIN Parent P2 on P1.Id=P2.ParentId
--==CONDITIONALLY DROP THE SAMPLE DATA TABLE==--IF object_id('tempdb..#yourSampleData') IS NOT NULLBEGIN DROP TABLE #yourSampleData;END;--==FILL THE SAMPLE DATA TABLE WITH THE DATA THAT YOU HAVE SPECIFIED==--SELECT Id, LastName, FirstName, Gender, ParentIDINTO #yourSampleDataFROM (VALUES(1,'Jones','Bob','M',NULL),(2,'Allen','Larry','M',NULL), (3,'Martins','Mary','F',NULL),(4,'Martins','Charles','M',3), (5,'Martins','David','M',3),(6,'Martins','Shirley','F',3), (7,'Martins','Noxy','F',6) )a(Id, LastName, FirstName, Gender, ParentID);
SELECT main.Id, main.LastName, main.FirstName, main.Gender,ISNULL('parent name ' + outerA.FirstName,'have no parent')FROM #yourSampleData mainOUTER APPLY (SELECT innerQ.FirstName FROM #yourSampleData innerQ WHERE innerQ.Id = main.ParentID) outerA;
SELECT main.Id, main.LastName, main.FirstName, main.Gender,ISNULL('parent name ' + outerA.FirstName,'have no parent')FROM #yourSampleData mainLEFT OUTER JOIN #yourSampleData outerA ON outerA.Id = main.ParentID;
Id LastName FirstName Gender ----------- -------- --------- ------ -------------------1 Jones Bob M have no parent2 Allen Larry M have no parent3 Martins Mary F have no parent4 Martins Charles M parent name Mary5 Martins David M parent name Mary6 Martins Shirley F parent name Mary7 Martins Noxy F parent name Shirley