求SQL写法 两个表,暂且称为A,B, 其中A表中有两列,a1,a2 B表中也两列b1,b2,a1列和b1列 的值是相同的

a2和b2列的值有相同的部分也有不同的部分,如以下a1a2a10a20b30b40B表中数据如下b1b2a10a20a30b50求找出在a1=b1的时候,AB两表中对应的... a2和b2列的值有相同的部分也有不同的部分,如以下
a1 a2
a 10
a 20
b 30
b 40
B 表中数据如下
b1 b2
a 10
a 20
a 30
b 50
求找出在a1=b1的时候,A B 两表中对应的a2和b2不同的值的sql写法,跪求
展开
iambise
2012-05-21 · TA获得超过714个赞
知道小有建树答主
回答量:834
采纳率:50%
帮助的人:504万
展开全部
select * from A where not exist (select * from B where A.a1=B.b1 and A.a2=B.b2)
union
select * from B where not exist (select * from A where B.b1=A.a1 and B.b2=A.a2)
更多追问追答
追问
其实我要的效果可以用这个SELECT * from A WHERE a1+a2 not in( select b1+b2 from B)
就是以A表的数据为准,查找出b1+b2 不存在于A表中a1+a2的明细,但not in 效率太低,还请赐教
追答
not in/in的效率肯定比exists低。看你的题目意思,是要找出AB两个表中不同的记录还是从表A中找出不存在于表B的记录?如果是从两个表中都找出来,那你只找了一半。AB两个表没有关联的字段,用你的写法也可以,但还是推荐用exists。上面的两个语句我把exists少写了一个s,呵呵。但不知道是否能实现你的要求,你可以试一下。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式