我有2张桌子产品& Product_BOM()其中Product是主表,Product_BOM包含产品的部件(物料清单)。请注意,PART(BOM)是另一种产品。
Product_id,Product_name,Product_type ..
Product_Bom_ID,Product_id
上面的表Product.Product_id = Product_BOM.Product_id
正如您所看到的,BOM是另一种产品,它可能还有许多其他产品作为BOM 这可以是更深层次的。现在的问题是,当主要产品被出售时,我想减少其BOM的数量(在所有更深层次,我不能假设深度)。如果我只有2个级别,那么我可以轻松地使用相同的表格来实现结果。
SELECT .....
FROM
Product P //Main Product
LEFT JOIN Product_BOM BOM on BOM.Product_id = P.Product_id // Get its BOM
JOIN Product pLevel1 on pLevel1.Product_id = BOM.Product_id // Get BOM's Product name etc
基本图如下
CAR (Main Product)
---TYRE (BOM of LEVEL 1)
-------RUBBER (BOM of LEVEL 2)
---SEAT (BOM of LEVEL 1)
-------LEATHER(BOM of LEVEL 2)
---ENGINE (BOM of LEVEL 1)
-------RPC-AM1(BOM of LEVEL 2)
----------R-18(BOM of LEVEL 3)
----------R-19(BOM of LEVEL 3)
-------CQR-DDF1.0(BOM of LEVEL 2)
以上所有CAR的PART都是另一个产品。现在我有了父产品,我如何在任何更深层次上获得属于它的所有子项目?
有没有其他方法可以在没有JOIN的情况下实现相同的目标?