如果我理解你是正确的,那么你想要所有的订单有产品反对他们,反过来供应商反对他们过滤后的清单。 简单的连接可以解决您的问题。
WITH order_set AS
(SELECT 1 orderid, 'O1' ordername, 2000 orderprice, 'Open' orderstatus
FROM DUAL
UNION
SELECT 2 orderid, 'O2' ordername, 4000 orderprice, 'Closed' orderstatus
FROM DUAL),
prod_set AS
(SELECT '11' productid, '1' orderidref, 'P1' productname,
10 productprice
FROM DUAL
UNION
SELECT '12' productid, '1' orderidref, 'P2' productname,
10 productprice
FROM DUAL),
supp_set AS
(SELECT '111' supplierid, '11' productidref, 'S1' suppliername,
100 supplierprice
FROM DUAL
UNION
SELECT '112' supplierid, '11' productidref, 'S2' suppliername,
200 supplierprice
FROM DUAL)
SELECT *
FROM order_set JOIN prod_set ON (orderid = orderidref)
JOIN supp_set ON (productid = productidref)
WHERE filter_condition;
到目前为止你做了什么?显示您的查询 – dbajtr
您的数据结构不清晰..请更新您的问题添加一个明确的(表格相关的)构成一个适当的数据样本和预期的结果 – scaisEdge
提及数据库以及具有适当的DDL的示例数据集。 – voidpro