如何使用mySQL中的group by删除数据库中的记录
如何使用mySQL中的group by删除数据库中的记录
这个问题已经有了答案:
可能是重复的:
我只有一个表(称为TAB),代表大学考试。我有以下属性:CourseName,CourseCode和year。我想删除所有基数小于100的课程。如果我键入
select CourseName from TAB group by CourseName having count(CourseName) < 100;
我会得到一个准确的结果。但如果我想删除这些条目,我会尝试使用
delete from TAB where CourseName not in (select CourseName from TAB group by CourseName having count(CourseName) > 100);
但系统会返回一个错误:
错误代码:1093您无法在FROM子句中指定更新的目标表“ TAB”
我该如何删除这些记录?
admin 更改状态以发布 2023年5月22日
请访问以下链接查看答案。它将解决您的问题:
基本上,您不能从(修改)在SELECT中使用的同一表中删除。该页面记录了解决方法。
以下内容将通过将嵌套的select
作为临时表来工作。
delete from TAB where CourseName not in (select temp.CourseName from (select t.CourseName from TAB t group by t.CourseName having count(t.CourseName) > 100 ) as temp )