次のテーブルがあります。
製品
- ID
- 名前
- 定価
mrp_bom
- ID
- produ_id (商品テーブルの参照)
- bom_id (セルフテーブルの参照を含む)
- 製品数量
関連製品以外の製品を選択し、ネストされたサブbom_product
にある場合は、このスタブが必要です。bom_product
bom_product
mrp_bom テーブルの次の画像。ここで、コンピューターよりも id が 1 のコンピューターを選択するとします。BOM として CPU、LCD、キーボードが必要です。現在、CPU にはハードディスクのマザーボードと RAM も必要なので、すべての bom とサブ bom を指定するよりもコンピューターを選択した場合は、再帰クエリが必要です。
私は次のクエリを書きましたが、それは1つのレベルを出力します 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 サブプロダクトを sp として結合 (mb.bom_id=sp.id) ) select name,product_id,id from subproduct) mb 結合 mrp_bom mp on mb.product_id=mp .id