vf或者sql之中两个表如何提取不同的部分?

有两个表A和BA表数据xmxhxbsrgg101男1982ww102男1983ss103女1984rr104女1982B表xmxhxbsrgg101男1982ss102男... 有两个表A和B
A表数据 xm xh xb sr
gg 101 男 1982
ww 102 男 1983
ss 103 女 1984
rr 104 女 1982
B表 xm xh xb sr
gg 101 男 1982
ss 102 男 1982
ss 103 女 1983
rr 104 女 1982
请问怎么样的代码可以提取出不同的数据,使用not in 好像提取不出来
展开
 我来答
手机用户88974
2011-04-09 · TA获得超过386个赞
知道答主
回答量:513
采纳率:0%
帮助的人:242万
展开全部
1。 用a表第一条记录去找b表第一条记录,如果dz不同,反馈到结果。2。用a表第一条记录去找b表第二条数据,如果dz不同,反馈到结果,如此循环,直到b表最后一条,然后a表条到下一条,继续循环。所以如果a表2条数据,b表三条数据,dz都不同的话,结果是:2*3=6条。你的误区在于:a表和b表除了dz外,缺少一个一一对应的主键。所以应该用 select a.* from ys.dbf where dz not in(select dz from old.dbf)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-04-08
展开全部
not in可以,不过要有一个提取不同的主要标识字段。
最好还是使用NOT EXISTS,效率要高的多。
SELECT * FROM A WHERE NOT EXISTS (SELECT 1 FROM B WHERE A.XM = B.XM ...)
UNION ALL
SELECT * FROM B WHERE NOT EXISTS (SELECT 1 FROM A WHERE B.XM = A.XM ...)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kyo7469
2011-04-08 · TA获得超过302个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:269万
展开全部
not in 是可以的
SELECT * FROM A WHERE xm NOT IN (SELECT xm FROM B)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式