sql leftjoin多表查询,出现重复的数据,怎么处理

sql leftjoin多表查询,出现重复的数据,怎么处理,第1张

sql left join多表查询,出现重复的数据使用distinct关键字可以去重。

工具/材料:Management Studio。

1、首先在桌面上,点击“Management Studio”图标。

2、然后在该界面中,点击左上角“新建查询”选项。

3、之后在该界面中,输入left join多表查询语句

4、接着在该界面中,点击左上方“执行”按钮。

5、然后在该界面中,显示的数据结果有重复。

6、其次在该界面中,left join多表查询语句中加入distinct关键字。

7、接着在该界面中,点击左上方“执行”按钮。

8、最后在该界面中,显示重复的数据被去除。

将数据去重复后暂存到临时表#a中

select distinct * into #a from table1 where 条件

delete table1 where 删除限制条件

insert into table1 select * from #a -将暂存的数据插回数据库

drop table #a -删除临时表

注:当前的数据库,每一个表都应该有一个标志字段,以保证记录不完全重复,否则实用中极易出问题。

扩展资料:

SQL语句删除掉重复的其他情况

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

SELECT

*

FROM

people

WHERE

peopleId IN (

SELECT

peopleId

FROM

people

GROUP BY

peopleId

HAVING

count(peopleId) >1

)

2、查找表中多余的重复记录(多个字段)

SELECT

*

FROM

vitae a

WHERE

(a.peopleId, a.seq) IN (

SELECT

peopleId,

seq

FROM

vitae

GROUP BY

peopleId,

seq

HAVING

count(*) >1

)

参考资料来源:结构化查询语言(SQL)-百度百科

在sql的使用中,我们总是碰到需要删除重复数据的情况,但是又不能全部删除完,必须要保留至少一个重复的数据。重复的记录根据两个字段 a2,a3 判断(实际使用中可以拓展为多个)

在上述的表中第三行和第四行重复,我们要选择一行删除,流程如下:

结果如下:

得到的结果如下:

|a1|a2|a3|

|---|---|

|3|2|2|

|4|2|2|

|6|2|2|

那么后面就很好办了:

3.选出要删除的值:

结果是保留a1最小的值,其他选项全部选出,

请注意 此时并不是将Select 改为delete就可以了,如果你直接这样子改的话,会报如下错误:

该错误提示你,不能先select出同一表中的某些值,再update这个表(在同一语句中)。所以要稍微修改一下。

结果如下:

|a1|a2|a3|

|---|---|

|1|1|1|

|2|1|2|

|3|2|2|

|5|3|3|

完毕

注:如果说不用保留一行数据的话那么就简单多了,只需要一个很简单的sql语句:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10072883.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存