如何用SQL语句删除两个表中相同的记录?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用SQL语句删除两个表中相同的记录?相关的知识,希望对你有一定的参考价值。

两个表的结构一样,且没有建立关系
一共有几十万条的记录啊,

如何将删除之后剩余的记录生成一个新的表,不要修改原来的表?

1,首先创建一个表,并在表中插入重复的记录,如下图所示。

2,插入好以后就看见表中已经有重复的数据了,如下图所示。

3,接下来在删除之前我们记得一定先备份,如下图所示。

4,然后排除重复的记录可以通过distinct字段设置,如下图所示,然后将去重的数据插入到新表中。

5,接着看到数据表下面多出来一个刚建的新表,如下图所示。

6,最后打开新表,就可以看到重复的数据都没有了,如下图所示。

参考技术A 这样删不掉应该是你的记录中就是这样写着null
要是这样的话你在null上加上单引号,这样应该就可以了
delete
from
student
where
s_no='null'
如果记录中那一列是空白的,也就是说不是显示null,那你把=改成is就可以了
参考技术B 先连接表1读取表1的所有数据存入DATATABLE里。
然后一行行与表2的数据进行比较,有相同的就执行删除。
参考技术C @@
两个表结构一样???这不等于两个表记录的数据是一种数据了嘛!
随便找一个没重复的字段做为匹配的就行了!
比如两个表中的Tname唯一,那么delete from t1,t2 where t1.Tname = t2.Tname
参考技术D insert into 新表
select * from 表1 where not id in (select id from 表2)
insert into 新表
select * from 表2 where not id in (select id from 表1)

如何用sql语句复制一张表

如何用sql语句复制一张表

1、复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM 旧表
这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除。
不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(auto_increment)等属性。需要自己用"alter"添加,而且容易搞错。

2、只复制表结构到新表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
或CREATE TABLE 新表 LIKE 旧表

3、复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * FROM 旧表

4、复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

5、可以将表1结构复制到表2
SELECT * INTO 表2 FROM 表1 WHERE 1=2

6、可以将表1内容全部复制到表2
SELECT * INTO 表2 FROM 表1

7、show create table 旧表;
这样会将旧表的创建命令列出。我们只需要将该命令拷贝出来,更改table的名字,就可以建立一个完全一样的表


 

以上是关于如何用SQL语句删除两个表中相同的记录?的主要内容,如果未能解决你的问题,请参考以下文章

如何用SQL语句查询两张表中的相同字段数据

在SQL中,如何用ALTER命令删除表中所有完整性约束,然后再用ALTER命令建立

如何用sql语句查询:在一个表中存在而另一个表中不存在的第一条记录?

如何用SQL语句向一个表中插入多行记录

如何用SQL语句向一个表中插入多行记录

如题:如何用一条SQL语句按输入的参数进行判断执行查询数据