如果我理解你是正確的,那麼你想要所有的訂單有產品反對他們,反過來供應商反對他們過濾後的清單。 簡單的連接可以解決您的問題。
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