2017-05-25 99 views
-1

我有這種情況下,我的查詢結果集。我需要使用某些條件過濾結果集。SQL查詢加入多個表以滿足所有條件或任何回報

查詢我:

SELECT 
ord_no,parent_item,child_item,status 

FROM **TABLE1** WHERE parent_item IN ('ITEM1') AND ord_no IN ('12345','34567','67854') 

UNION ALL 

SELECT 
ord_no,parent_item,child_item,status 

FROM **TABLE2** WHERE parent_item IN ('ITEM2') AND ord_no IN ('12345','34567','67854') 

UNION ALL 

SELECT 
ord_no,parent_item,child_item,status 

FROM **TABLE3** WHERE parent_item IN ('ITEM3') AND ord_no IN ('12345','34567','67854') 

查詢返回的結果類似這樣的和預期的結果,我找的是隻返回特定order_no所有child_items處於完成狀態。

查詢結果:

ord_no parent_item child_item status 
12345 item1 childA complete 
12345 item1 childB complete 
12345 item2 childC complete 
12345 item2 childD incomplete 
12345 item3 childE incomplete 
12345 item3 childF complete 

34567 item1 childA complete 
34567 item1 childB complete 
34567 item2 childC complete 
34567 item2 childD complete 
34567 item3 childE complete 
34567 item3 childF complete 

67854 item1 childA incomplete 
67854 item1 childB incomplete 
67854 item2 childC complete 
67854 item2 childD complete 
67854 item3 childE incomplete 
67854 item3 childF incomplete 

預期結果:

我無法弄清楚如何執行此操作。任何幫助,將不勝感激。

ord_no parent_item child_item status 

34567 item1 childA complete 
34567 item1 childB complete 
34567 item2 childC complete 
34567 item2 childD complete 
34567 item3 childE complete 
34567 item3 childF complete 
+0

歡迎來到SO!請提供1)實際表格模式的相關部分以及樣本數據2)確切的期望輸出3)您迄今爲止的嘗試 – peterm

+0

相信如果您沒有準備好實際的表格結構,您不能指望我們幫助您查詢想象力 – Shinchan

回答

0

您可以create a view從現有的查詢,以避免長的表達式,並使用它的子查詢。

SELECT * 
FROM MyView 
WHERE ord_no NOT IN 
    (SELECT ord_no 
    FROM MyView 
    WHERE status <> 'complete');