2017-03-09 87 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’ 
) 
相关问题