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

LEFT JOIN 和 INNER JOIN

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;

实测用INNER JOIN也可以 为什么不用INNER呢 感觉更合逻辑? 这里的话感觉JOIN没有实际意义 只是引出了后边t2表的定义。


正在回答

2 回答

这个SQL 语句就是那个删除表中自身ID较大的重复数据,因为只有一张表 数据字段名都一样,所以 就算想象出了两张表 字段都一样的情况下 内连和外连就无所谓了 都一样

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

weibo_爱幻熊_0 提问者

非常感谢!
2018-04-24 回复 有任何疑惑可以回复我~
个人也觉得内连接更合理;不过使用外连接时,由于结果除了重复的行,其它行对应的t2都是NULL所以没办法比较goods_id,最后也只有t2有记录的那两行进行比较而已
2 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

LEFT JOIN 和 INNER JOIN

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