0

我有 2 个表 Product & Product_BOM () 其中 Product 是主表, Product_BOM 包含产品的零件(物料清单)。请注意,零件 (BOM) 是另一个产品。

表产品

Product_id,Product_name,Product_type ..

表产品_BOM

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 的部分是另一个产品。现在我有了父产品,我如何让所有子项目在更深层次上属于它?

有没有其他方法可以在没有 JOIN 的情况下达到同样的效果?

4

0 回答 0