J'ai la table DB suivante décrivant une nomenclature, essentiellement une arborescence:
Part(PartId, ParentId, PartName)
Les parties avec ParentId = 0 sont des produits finis, ce qui signifie qu'ils ne composent aucun autre produit.
Maintenant donné un PartId je voudrais savoir à quels produits il appartient en utilisant SQL pur (MS SQL Server) ou LINQ lambda
Essayez ce qui suit:
;WITH CTE AS ( SELECT PartId, ParentId FROM Part WHERE PartId = @PartId UNION ALL SELECT B.PartId, B.ParentId FROM CTE A INNER JOIN #Part B ON A.ParentId = B.PartId ) SELECT DISTINCT PartId FROM CTE WHERE ParentId = 0