本人新手,有个SQL语句写不来.情况如下: 数据库有3个表(为了方便,我字段用中文表示) 帐号表:account(id,name)
人物表:user(id,登记时间,级别)
数据表:data(id,操作记录)
三个表通过id关联 现在我想删除三个表中的相关数据:条件是人物表中'登记时间'小于2007-11-20 并且'级别'小于5的所有数据.
delete from account where id in
(select id from user where 登记时间 <'2007-11-20' and 级别 <5); delete from data where id in
(select id from user where 登记时间 <'2007-11-20' and 级别 <5); delete from user where 登记时间 <'2007-11-20' and 级别 <5;
感谢了,还有个问题帮解答下,马上结贴了. 比如要删除 data表中的数据,条件是data表中的id在user表中不存在的delete from data where id not in(select id from user); 好像是这样我试了这两种方法,MYsql都提示有语法错误,我的是mysql4.0的,应该怎么办呢?
人物表:user(id,登记时间,级别)
数据表:data(id,操作记录)
三个表通过id关联 现在我想删除三个表中的相关数据:条件是人物表中'登记时间'小于2007-11-20 并且'级别'小于5的所有数据.
delete from account where id in
(select id from user where 登记时间 <'2007-11-20' and 级别 <5); delete from data where id in
(select id from user where 登记时间 <'2007-11-20' and 级别 <5); delete from user where 登记时间 <'2007-11-20' and 级别 <5;
感谢了,还有个问题帮解答下,马上结贴了. 比如要删除 data表中的数据,条件是data表中的id在user表中不存在的delete from data where id not in(select id from user); 好像是这样我试了这两种方法,MYsql都提示有语法错误,我的是mysql4.0的,应该怎么办呢?
select * from data where id not in (select id from user);
是一下
select * from data where id = any (select id fromuser);
没有试过。你可以先备份数据试一下。
delete from data using data left join user on data.id=user.id where user.id is NULL
试试?