关于两个表的查询
两个表a、b,a表中code与b表中的code类型与大小一样,存储的内容一致,不能约束成外键。这时如果我想查找到a中的code内容不包括b中code的内容,这样的语句假如不用in,我该如何写?用in是不是很影响查询的效率呢? 问题点数:20、回复次数:9Top
1 楼luyuen(滋味)回复于 2003-12-02 08:41:43 得分 8
select code from a
minus
select code from bTop
2 楼lsl031(lsl031)回复于 2003-12-02 20:51:03 得分 2
select a.code from 表a名 a ,表b名 b where a.code=b.code and 其他条件
如果数据量大的话,用in语句肯定会影响运行效率的,因为运行次数多了很多!Top
3 楼leecooper0918(爱一个人好难)回复于 2003-12-02 20:57:43 得分 2
select a.col1, a.col2,.... from a
where a.code=b.code(+) and b.code is nullTop
4 楼leecooper0918(爱一个人好难)回复于 2003-12-02 20:58:21 得分 2
少写了个B表
select a.col1, a.col2,.... from a,b
where a.code=b.code(+) and b.code is nullTop
5 楼shanyuliang(良子)回复于 2003-12-02 21:11:03 得分 2
luyuen(滋味)的语句就很好,简明易懂。Top
6 楼yougubailan(幽谷白兰)回复于 2003-12-02 22:04:21 得分 2
就象上面滋味写的那样,用类似于集合差集的概念,很容易实现的:
(select code from a)
minus
(select code from b)
Top
7 楼liqxdt(黑客劍--助人護己)回复于 2003-12-03 09:06:23 得分 2
query sql studyTop
8 楼NeoChen(尼奥)回复于 2003-12-05 07:53:50 得分 0
谢谢大家Top
9 楼leecooper0918(爱一个人好难)回复于 2003-12-05 21:24:07 得分 0
呵呵,等到这个表数据量大的时候,就能看出minus的效率了.Top




