DROP TABLE IF EXISTS student_info;
CREATE TABLE student_info(
  id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
  student_id int(10) NOT NULL COMMENT '学生ID',
  student_info varchar(50) NOT NULL COMMENT '学生信息',
  in_time datetime COMMENT '学生信息的插入时间',
  PRIMARY KEY (id)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
=======
表里面只允许每个学生保留最近的5条学生信息,这个删除语句怎么写呢

解决方案 »

  1.   

    delete x from student_info x inner join (
    select id 
    from student_info a
    where 5<(
    select count(*) 
    from student_info 
    where student_id=a.student_id 
    and in_time>a.in_time
    )
    ) y on x.id=y.id
      

  2.   

    我把这个语句放到存储过程中,执行存储过程报这个错误
    mysql_real_query error:You can't specify target table 'x' for update in FROM clause