我有以下一系列表格
Items - contains all items
Purchase_order - 1:m purchased_items
purchased_items - 1:m receipts
receipts - 1:m received_items
recieved_items - 1:m shipments
shipments - 1:m shipped items
我需要列出所有采购订单的完整详细信息,因为purched_order中包含了purched_items,而这些又有多行收据,依此类推。但是所有的采购订单可能没有收据,收据可能没有e.t.c的所有项目,因此我尝试使用LEFT JOIN
开始的purchase_order
并移至上述订单中。问题是,一个有6个项目的purchase_order
将产生6个重复的receipt
,而每个重复将产生多个重复的received_items
行,依此类推...
我知道group by无法解决此问题,请向我指出正确的方向。
购买顺序:
id | name
----------
1 | po1
Puchased_items
id | purchase_order_id | item_id
--------------------------------
1 | 1 | 1
2 | 1 | 4
3 | 1 | 5
4 | 1 | 6
收据
id | name | purchase_order_id
------------------------------
1 | rc01 | 1
2 | rc02 | 1
Received_items
id | receipt_id | item_id
--------------------------------
1 | 1 | 1
2 | 1 | 4
3 | 2 | 5
4 | 2 | 6
发货
id | name | receipt_id
------------------------------
1 | shp01 | 1
2 | shp02 | 1
3 | shp03 | 2
4 | shp04 | 2
Shipped_items
id | shipment_id | item_id
--------------------------------
1 | 1 | 1
2 | 2 | 4
3 | 3 | 5
4 | 4 | 6
预期产量
purchase_order_item | purchase_order | receipt | shipment
----------------------------------------------------------
1 | po1 | rc01 | shp01
2 | po1 | rc01 | shp02
3 | po1 | rc02 | shp03
4 | po1 | rc02 | shp04