Mysql中查询A表m字段与B表n字段进行匹配不同 5
A表m字段1,2,3,4B表m字段2,3,4,5输出A表中与与B表不同的值,结果为输出1,这个用语句怎么写?...
A表m字段1,2,3,4
B表m字段2,3,4,5
输出A表中与与B表不同的值,结果为输出1,这个用语句怎么写? 展开
B表m字段2,3,4,5
输出A表中与与B表不同的值,结果为输出1,这个用语句怎么写? 展开
3个回答
展开全部
你指的是什么意思?
你要举个列子,别人才明白
比如A表
id / m
1 2
2 4
3 5
-----------
B表
id / n
1 2
2 3
3 5
你要的结果是返回什么?
追问
就像你这个AB表,m和n字段做比对,返回结果为m中n没有的,结果为4
追答
SELECT * FROM `tt_table1` as a LEFT JOIN tt_table2 as b on a.m = b.n group by a.m ;
这不就得了?
然后后台 foreach 循环遍历 获得n为空的结果 , 这是性能最佳的方法,不然数据多就跟楼上那位一样一只卡半天
请教别人的时候要表达自己诚意
1不要截图,输入文字, 2举例说明,3越详细越好, 别人才明白你的诚意
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select A.m from A where A.m not in (select m from B);
输出结果为1,
输出结果为1,
追问
我的代码有点长复制不进来,但是我的规范是你这样的格式,但感觉在无限循环一样,查询了半个多小时还在跑。我描述里上传了照片麻烦您帮看下是不是哪里有问题
追答
时间长,不一定是代码逻辑不对,没有报错,只是时间长,首先看一下数据量有多少,在估算一下时间,这个逻辑就好比是去遍历,拿a表的数据去遍历b表的数据。如果两表的数据量都大的话,时间应该会很长,且你还使用了insert,你可以拿出来单步的sql,或者看一下执行计划,看一下是哪一步比较耗时,单拿出来测试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询