2017-03-09 88 views
2

我有兩個查詢。只有一個連接條件不同。有什麼辦法讓它成爲一個單一的查詢。下面是查詢。加入兩個具有相同類型連接的查詢

首先查詢:

delete from Employee where Employee_ID in  
    ( 
    select PK from Dept  
    inner join Tran on Tran.PK = Dept.TX_ID 
     inner join TASK on TASK.TRANSINFO = TRAN.PK_ID 
     inner join TASK1 on TASK.PT_ID = TASK1.PK_ID 
      inner join TASKSUB on TASKSUB.PK_ID = TASK1.SUBJECT 
    where TASKSUB. PK1 in (select id from tmp) and TASKSUB.REF= ‘Shopping’ 
); 

第二個查詢:

delete from Employee where Employee_ID in 
     ( 
    select PK from Dept 
    inner join Tran on Tran.PK = Dept.TX_ID 
    inner join TASK on TASK.TRANSINFO = TRAN.PK_ID 
     inner join TASK1 on TASK.PT_ID = TASK1.PK_ID 
     inner join TASKSUB on TASKSUB.PK_ID = TASK1.SUBJECT 
    where TASKSUB. PK1 in (select id1 from tmp) and TASKSUB.REF= ‘Shopping’ 
); 

唯一的區別是在TMP表的id和ID1。

在此先感謝

回答

1

也許在子使用UNION選擇ID和ID1。像

select id from table1 
union 
select id1 from table1 
0

東西試試這個:

delete from Employee where Employee_ID in  
( 
    select PK from Dept  
    inner join Tran on Tran.PK = Dept.TX_ID 
    inner join TASK on TASK.TRANSINFO = TRAN.PK_ID 
    inner join TASK1 on TASK.PT_ID = TASK1.PK_ID 
    inner join TASKSUB on TASKSUB.PK_ID = TASK1.SUBJECT 
    where TASKSUB. PK1 in (select id from tmp) and TASKSUB.REF= ‘Shopping’ 

    union 

    select PK from Dept 
    inner join Tran on Tran.PK = Dept.TX_ID 
    inner join TASK on TASK.TRANSINFO = TRAN.PK_ID 
    inner join TASK1 on TASK.PT_ID = TASK1.PK_ID 
     inner join TASKSUB on TASKSUB.PK_ID = TASK1.SUBJECT 
    where TASKSUB. PK1 in (select id1 from tmp) and TASKSUB.REF= ‘Shopping’ 
); 
0

這個怎麼樣?

where EXISTS (
     select 1 from tmp 
     where TASKSUB.PK1 = tmp.id or TASKSUB.PK1 = tmp.id1 
    ) and 
    TASKSUB.REF= ‘Shopping’ 
1
delete from Employee where Employee_ID in  
( 
select PK from Dept  
inner join Tran on Tran.PK = Dept.TX_ID 
    inner join TASK on TASK.TRANSINFO = TRAN.PK_ID 
    inner join TASK1 on TASK.PT_ID = TASK1.PK_ID 
     inner join TASKSUB on TASKSUB.PK_ID = TASK1.SUBJECT 
where TASKSUB. PK1 in (select id from tmp union all select id1 from tmp) and TASKSUB.REF= ‘Shopping’ 
) 
相關問題