如何使用group by [删除]在MySQL删除数据库中的记录
技术问答
65 人阅读
|
0 人回复
|
2023-09-13
|
这个问题有答案 :1 P2 [! k+ h( x9 S5 [$ }+ N. Q
9年前关闭。
3 N9 B) q3 B( A; x可能重复:
' ?, w5 I5 A* w9 [* P2 k* f9 wSQL删除:不能在那里FROM指定要更新的目标表
' C( _% a* x/ H5 O& m我只有一张表(称之为此表)TAB),代表大学考试。我具有以下属性:CourseName,CourseCode和year。我想删除所有基数小于100的课程。如果输入$ M. }: L* p$ [
select CourseName from TAB group by CourseName having count(CourseName) 我有确切的结果。但是,如果您想删除此项目,请尝试9 u* S5 v4 d* K( N% z5 m
delete from TAB where CourseName not in (select CourseName from TAB group by CourseName having count(CourseName) > 100);但系统返回错误:" Q E9 B/ S) e' M# T
5 e8 r3 E3 o- I, i$ F
1093您不能在FROM子句中指定的目标表 TAB”进行更新
& W2 d8 T8 R& k4 F& _如何删除这些记录?
. H' z) k# Y. Z( m9 d/ _" G. b0 w . ]* ~, c, a& m! O+ z( y
解决方案:
# E N W! u0 s" R4 g( G 请在以下链接中查看答案。它将解决您的问题:
, k6 ?0 I+ h+ e( tMySQL错误1093-无法在FROM更新句子中指定的目标表基本上,你不能从(修改)和SELECT删除相同表中使用的表。该页面记录了多种解决方案。
[' u9 s4 g* F, s* |! K' ?使您的嵌套select临时表可以工作以下内容。
& d5 ?) f9 @) Ndelete from TABwhere CourseName not in (select temp.CourseName from (select t.CourseName from TAB t group by t.CourseName having count(t.CourseName) > as temp |
|
|
|
|
|