A表:
ha dhm rq sj sc
13705431574 15128152676 2010-04-01 20:48:32 412
13705431574 0871669977 2010-04-01 03:10:49 20
13705431574 15883217969 2010-04-01 14:34:15 118B表:
hd gsd
1512815 河北石家庄移动
1512815 河北石家庄
1588321 四川资阳移动
C表:
hm jz dz
15128152676 aa ab
15883217969 bb bc
0871669977 cc cc
0871669977 cc ccd
15883217969 bc bbcselect *
from a
left join b on
substr(hm,1,7)=b.hd
left join C on
c.hm=a..hm
最后发现有重复数据不需要重复的我准备把B表整理数据库,消掉重复的数据,这样可以避免重复
最后需要得到的表是这个格式:
Hm dhm gsd jz dz rq sj sc
delete from table1 t1 where exists (select 1 from table2 t2 where t1.id = t2.id and t1.rowid > t2.rowid);ti.id = t2.id 这里的id指的是你通过哪个字段做为评定此条数据为重复数据的字段。
查找出重复项,然后依靠rowid只保留一个,从而删除重复
where a.rowid > (select min(b.rowid)
from products b
where a.product_id = b.product_id);用到了内连接和rowid。
exists 是用来判断后面的查询是否存在的,它的值就是true或false,所以它并不关心后面查出来的是什么数据。这样的话,为了提高性能select后加一个任意的数字性能会比查询某个字段要高。