有个简单的查询问题,求教下大家,谢谢。

zongliang2015 2015-10-17 08:53:54
f = {3, 1, 0}

表A(8个)
f1 f2 f3
1 1 1
1 1 3
1 3 1
3 1 1
1 3 3
3 1 3
3 3 1
3 3 3

表B(27个)
f1 f2 f3
0 0 0
0 0 1
...
3 3 3

求B-A的集合,就是在表B中,不在表A中?共(27-8个)
...全文
145 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
frankl123 2015-10-19
select * from b
except 
select * from a
回复
道玄希言 2015-10-18

;with tb as
(
  select  
    t1.f1, t1.f2, t1.f3, t2.f1 as f4 
    from 表B as t1
  left join 表A as t2 
    on t1.f1 = t2.f1 
      and t1.f2 = t2.f2 
      and t1.f3 = t2.f3 
)
select f1, f2, f3 from tb where f4 is null
回复
symboled 2015-10-18
引用 2 楼 qq_17482963 的回复:
select * from 表B a where not exists (select * from 表A where f1=a.f1 and f2=b.f2 and f3=a.f3)
试试这个
这种在数据两很打的时候会影响速度的
回复
qq_17482963 2015-10-18
select * from 表B a where not exists (select * from 表A where f1=a.f1 and f2=b.f2 and f3=a.f3)
试试这个
回复
zongliang2015 2015-10-17
没人回复,自己顶下。
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-10-17 08:53
社区公告
暂无公告