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

最后这个语句为什么要LEFT JOIN。内连接就可以了,并不需要tdb_goods的全部记录吧。

 DELETE t1 FROM tdb_goods AS t1 LEFT JOIN (SELECT goods_id,goods_name FROM tdb_goods GROUP BY goods_name HAVING count(goods_name) >= 2 ) AS t2  ON t1.goods_name = t2.goods_name  WHERE t1.goods_id > t2.goods_id;

正在回答

2 回答

对的,内连接是可以的,而且应该更正确

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

侠客岛的含笑

误人子弟
2016-09-30 回复 有任何疑惑可以回复我~

他要删除的后俩条记录,内连接只能找到前俩条记录,无法实现他所说的删除id较大 的记录

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

亜門

确实删除了id较大的
2017-08-25 回复 有任何疑惑可以回复我~
#2

Silent_Walke

删除相同的记录,那么只需要inner join找相交集合就可以了,goods_name相同,那么有四个项,加上gooods_id大小比较就可以做到只删除重复的那两个,inner join应该是比较好的
2018-10-14 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

最后这个语句为什么要LEFT JOIN。内连接就可以了,并不需要tdb_goods的全部记录吧。

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