mysql关联表 删除多余数据
现在表有A,B A表中有个B_ID, 现在表A中有很多数据对应的B_ID在表B中找不到 需要删除 sql语句如何写? SQL code: delete from A where B_ID NOT IN (select ID from B); 这张表有6000万数据,2000万是多余的 有更好的sql语句吗???
delete a from A left join b on B_ID=b.id where b.id is null SQL code: DELETE from A WHERE NOT EXISTS(SELECT 1 from B WHERE ID=A.B_ID);引用 or 直接生成一个新表 create table newtt as select a.* from a inner join b on a.B_ID=b.id 貌似这个不错 如果 b (ID) 是主键, #3楼的方法 SQL code: DELETE from A WHERE NOT EXISTS(SELECT 1 from B WHERE ID=A.B_ID); 另外 这张表有6000万数据,2000万是多余的 如果没有约束上的限制,不如重建一个表,速度反而快。
相关问答:
我现在学习MYSQL,问下mysql储存过程如何建立和使用,最好写成$sql="sql语句",$re=mysql_query($sql);谢谢 建议你先自己看一下文档中的例子。 http://dev.mysql.com/doc/refman/5.1/zh/stored-pro ......
如题 数据是BLOB类型 怎么才能修改其中的某些值 BLOB中存入的是什么内容? 假设字段memo为blob类型,在该字段的值前面增加字符串'add--' 则操作语句如下: SQL code: update tb_blog set memo=concat( ......
在三十讲遇到这样一个问题就是运行代码时出现错误 Fatal error: Call to undefined method mysql::fetch_array() in D:\WWW\news\index.php on line 12 ,我把mysql::fetch_array() 改成mysql::fetch_row() 又出现F ......
mysql>create book( ->id varchar(20) not null,g -> 以上是在mysql命令行里的操作 在上面中我在倒数第二行多打了一个字母g然后按了回车键,请问从倒数第一行怎么 ......