回答

收藏

如何使用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
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则