您的位置:首页 > 数据库

sql记录查询重复注意事项(经验提升),in的用法和效率

2013-12-24 15:25 357 查看
sql查询重复记录,使用:

select * from dimappnamenew as appn

where id

in

(

select id

from dimappnamenew group by packagename,storename,app_name having count(*)>1

)

id是表的主键,三个属性映射后可以唯一对应id这个列,所以用id就行了。

在做其他查询时,认真分析表内容,如果查询多个字段可以唯一对应一个字段,直接用这个字段作为外部对比,会加快效率。是指等号时候。

注意,in在sql里定义的使用规则是,in(value1,value2,value3,。。。。。。),即,in 后比较的是具体的各种取值。

在 in(select 子句)中,select子句 只能返回一个属性 :select 后只能跟表里的一个属性,返回这个属性的不同取值,才能用in做比较。

in的执行效率很差。因为无法用上表的索引。如果用子查询,可以用exist的效率更好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: