我目前在我的数据库中有以下两个表:
Table: SampleProducts
SampleProductsId (PK) Name
1 A
2 B
3 C
4 D
5 E
6 F
7 G
Table: SampleProductsBoms
SampleProductsBomId (PK) ParentId (FK) ChildId (FK) Quantity
1 1 2 3
2 2 3 4
3 4 6 2
ParentId和ChildId都引用了SampleProductsId
在英语中,我可以确保我们都在同一页面上: 产品A由B中的3个组成 产品B由4个C组成 产品D由2个F
组成我想创建一个Stored Procedure / LinQ语句或者我可以在我的MVC 3 c#Web应用程序中使用的东西,它将为我提供以下表结构/对象...
示例:
Recursive Query to find the components of B
ProductId Name Quantity
3 C 4
6 F 2
这可能会非常深入,所以我确实需要递归!
答案 0 :(得分:0)
或者我认为以下查询也可以解决您的目的
select components.SampleProductId as productid,components.Name as Name,Quantity
from SampleProductsBOM bom
inner join SampleProducts products
on products.ParentId=bom.ParentId
inner join SampleProducts components
on components.SampleProductId=bom.ChildId
where products.Name='B'