为了账号安全,请及时绑定邮箱和手机立即绑定

为什么t1.goods_id大于t2.goods_id就能删除两个id大的了?

根据老师的删除代码可以得出查询语句如下

select t1.goods_name,t1.goods_id,t2.goods_name as goods1_name from tdb_goods as t1 LEFT JOIN (SELECT goods_id,goods_name from tdb_goods GROUP BY goods_name HAVING COUNT(goods_id)>=2) as t2 ON t1.goods_name=t2.goods_name where t1.goods_id>t2.goods_id,结果如下,确实是两条记录:

http://img1.sycdn.imooc.com//5aab957f00012ff018140113.jpg

当我去掉WHERE条件后,即:

select t1.goods_name,t1.goods_id,t2.goods_name as goods1_name,t2.goods_id as goods1_id from tdb_goods as t1 LEFT JOIN (SELECT goods_id,goods_name from tdb_goods GROUP BY goods_name HAVING COUNT(goods_id)>=2) as t2 ON t1.goods_name=t2.goods_name; 

http://img1.sycdn.imooc.com//5aab95ca0001a42a17770460.jpg

结果是有24条记录.

那么t1.goods_id>t2.goods_id难道t2为null的是不进行比较直接排除吗?

如果比较的话应该是留有22条记录的吧?

正在回答

2 回答

外连接LEFT JOIN 有左表的全部,少了where就没有对连接表的比较了

0 回复 有任何疑惑可以回复我~

因为是从tb1表中删除的

0 回复 有任何疑惑可以回复我~
#1

Mr_郑 提问者

tb1中不是有24条记录,按照比较的结果怎么是2条,而不会是22条呢?
2018-03-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

为什么t1.goods_id大于t2.goods_id就能删除两个id大的了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信