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

请教一下这两条查询语句的优劣性?

SELECT t1.goods_id, t1.goods_name 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;

SELECT t1.goods_id, t1.goods_name FROM tdb_goods AS t1 
LEFT JOIN tdb_goods AS t2  
ON t1.goods_name = t2.goods_name  WHERE t1.goods_id > t2.goods_id;


正在回答

1 回答

1、第一句楼主写得明显有问题,SELECT查询两个字段都是t1表的,后面附加语句完全没意义,与其类似的一句是“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;”(5.14 多表删除),用来删除重复记录;

2、第二句楼主写得也很是有问题,SELECT查询两个字段也都是t1表的,不知道你这个查询语句的意图是什么,还请楼主把问题描述清楚点;

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

举报

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

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

进入课程

请教一下这两条查询语句的优劣性?

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