关于mysql删除语句的子查询问题
2016-06-15 16:42
507 查看
今天要删除letterrelation表中无效的数据,于是找出无效的letterrelationId
然后在前面加上delete语句
呵呵。报错了
于是后来百度好久,找到一个网址解答:http://zhidao.baidu.com/question/1831460432659159420.html
于是我就写下了自己的sql语句:
最后发现完美解决了。但是原因我说一下:
1网上的解释是说mysql工具不强大,无法做到对某个表进行查询了然后又进行删除操作,但是oracle可以做到。这样
算的话就是mysql不强大了。
2同事说是建立视图了,视图我不太了解,暂且等我先去研究一下
select letterRelationId from letterrelation where letterRelationId not in(select distinct letterRelationId from letter);
然后在前面加上delete语句
delete from letter where letterRelationId in(select letterRelationId from letterrelation where letterRelationId not in(select distinct letterRelationId from letter));
呵呵。报错了
于是后来百度好久,找到一个网址解答:http://zhidao.baidu.com/question/1831460432659159420.html
于是我就写下了自己的sql语句:
create table table_test as select letterRelationId from letterrelation where letterRelationId not in(select distinct letterRelationId from letter); delete from letterrelation where letterRelationId in (select letterRelationId from table_test); drop table table_test;
最后发现完美解决了。但是原因我说一下:
1网上的解释是说mysql工具不强大,无法做到对某个表进行查询了然后又进行删除操作,但是oracle可以做到。这样
算的话就是mysql不强大了。
2同事说是建立视图了,视图我不太了解,暂且等我先去研究一下
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复