我有以下表格:
产品
- ID
- 姓名
- 价格表
mrp_bom
- ID
- produ_id(产品表的参考)
- bom_id(包含 self 表的引用)
- 产品数量
现在我想要这个存根,如果我选择任何不相关的产品bom_product
并且如果在bom_product
任何bom_product
嵌套的子中。
以下是 mrp_bom 表的图像。现在假设我选择 id 为 1 的计算机,而不是我需要 CPU、LCD、键盘作为 BOM 的计算机现在 CPU 还需要硬盘主板和内存,所以如果我选择计算机,我想要递归查询而不是给出所有 bom 和 sub bom。
我写了以下查询,但它给出了一个级别的输出 select mb.product_id,mb.name from (with recursive subproduct as (select name,product_id,id from mrp_bom where product_id=2 Union All
select mb.name,mb.product_id,mb.id from mrp_bom as mb Join subproduct as sp on (mb.bom_id=sp.id) select name,product_id,id from subproduct) mb join mrp_bom mp on mb.product_id=mp 。ID