2010-09-14 49 views
0

我有一个表变量,它包含orderID,UnitIDOrderServiceId(它已经通过带insert语句的查询填充)。我的表变量中不存在的SQL显示记录

我则有权根据本返回15列其中还包括OrderIdUnitIdOrderServiceId

我只需要从该查询哪里OrderIdUnitIdOrderServiceId相同的组合是返回行的查询不在表变量中。

回答

3

您可以使用NOT EXISTS。例如

FROM YourQuery q 
WHERE NOT EXISTS 
(
SELECT * FROM @TableVar t 
WHERE t.OrderId = q.OrderId 
    and t.UnitId = q.UnitId 
    and t.OrderServiceId=q.OrderServiceId 
) 
+0

+1不存在,总是,恕我直言 – gbn 2010-09-14 17:22:46

2
select q.* 
from (
    MyQuery 
) q 
left outer join MyTableVariable t on q.ORDERID = t.ORDERID 
    and q.UNITID= t.UNITID 
    and q.ORDERSERVICESID = t.ORDERSERVICESID 
where t.ORDERID is null 
+1

+1更快了! – 2010-09-14 17:01:15

+0

可能会重复,因为它是JOIN。使用不存在 – gbn 2010-09-14 17:22:19

0

您可以使用EXCEPT | INTERSECT运营商为此(link)

例子:

(select 3,4,1 
union all 
select 2,4,1) 

intersect 

(select 1,2,9 
union all 
select 3,4,1) 
相关问题