使用JOIN获得更深层次的子项

时间:2013-11-04 05:27:26

标签: php mysql

我有2张桌子产品& Product_BOM()其中Product是主表,Product_BOM包含产品的部件(物料清单)。请注意,PART(BOM)是另一种产品。

表产品

Product_id,Product_name,Product_type ..

表Product_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的PART都是另一个产品。现在我有了父产品,我如何在任何更深层次上获得属于它的所有子项目?

有没有其他方法可以在没有JOIN的情况下实现相同的目标?

0 个答案:

没有答案