关于mysql数据库两个表数据对比问题

关于mysql数据库两个表数据对比问题,第1张

不建议图省事,老老实实写三条比较好。

insert into T2 (A,B,C) select T1A,T1B,T1C from T1 left join T2 on T1A = T2A and ( T1B = T2B or T1C = T2C );

insert into T2 (A,B,C) select T1A,T1B,T1C from T1 left join T2 on T1B = T2B and ( T1A = T2A or T1C = T2C );

insert into T2 (A,B,C) select T1A,T1B,T1C from T1 left join T2 on T1C = T2C and ( T1B = T2B or T1A = T2A );

rails 有 migrate 工具,所有数据库更改都会记录在 migration中, 可以很方便的进行数据库结构的改变。

不知道你是做什么开发的。但应该也有相类似的工具。当然,你可以用rails的migrate工具进行数据库的更改。

一次取出表一中的所有记录(6W,不多),然后用 try 往表2里插,因为表2字段是唯一的,所以中间重复数据可能有出错的地方,出错则直接抛弃,不管它

select from table1

while(each rows){

try{

insert into table2

} catch ($e){

do nothing

}

}

第一种方法(穷举法)void findSame(Type A[], TypeB[], Type C[]){ //设数组C = A + B(当然C没必要) for(int i = 0; i < Csize(); ++i) { for(int j = i + 1; j < Csize(); ++j) { compare(); } } 时间复杂度:n^2(n^2/2 - n /2);}第二种方法void findSame(Type A[], Type B[], Type C[]){ sort(A); sort(B); for(int i = 0; i < Asize(); ++i) { //先在已排序的A中找相同记录(略) //再在已排序的B中找相同记录(二分查找) } 时间复杂度nlogn(mlogm + nlogn + m + mlogn)应该比在一个数组中快,在一个数组时间复杂度:(m + n)logn + (m + n) 那为了更快,可再划分更多的小数组,使得排序的时间降下来}

哦。最简单的办法是把数据库(应该是表吧),变成文本,然后找个版本比较工具,比如Visual Strudio里带的,或者是winmerge,将两个数据表合并,合并完了后,再重新导进数据库。这个方法最好。不需要编程。

如果你通过编程的方式做,那更简单了。先一个临时表,把另一个库里的表存进来,然后用一个SELECT就搞定。

先看你的数据库有多少个字节,如果字节总数少于255最方便。新建一个数据库tttdbf,就一个字段AA,字符型,宽度254。

打开你的数据库,输入命令

copy to temp sdf

use ttt

appe from temp sdf

修改temp库结构,增加字段recn(C型,10位,用来保存记录号),sl(N型,宽度1,保存相同记录的条数),ctrl+w退出表设计器

repl all recn with str(recn(),10),sl with 1

inde on AA to 123

total on AA to 123

use 123

数据库123就是没有重复记录的新表,里面的sl是记录有相同的重复数量,recn是相同的第一条记录位于原表的记录号。

如果原来的表总宽度大于255,小于509,可以再增加一个字段AB,先按AA字段TOTAL,再按AB字段TOTAL,然后把这样形成的两个新表的记录号都到老表标出,标出的记录拷贝出来就是无完全相同记录的表了。

补充问题和这原理一样,如果a和b字段相同的话,可以用上面的办法整理出两个temp表,temp1和temp2。先把temp1的所有记录都加上删除标记,把把b中有不一样记录的恢复,余下的就是所需。

sele 2

use temp2

sele 1

use temp1

dele all

go top

do while !eof()

sele 2

loca for !aa=aaa

if !eof()

sele 1

reca

endif

sele 1

skip

enddo

pack

这样temp1中的记录号代表的原a表的记录组成的新表就是询问者所需。

以上就是关于关于mysql数据库两个表数据对比问题全部的内容,包括:关于mysql数据库两个表数据对比问题、有没有可以比对两个数据库中数据表结构异同的工具、如何快速的在Mysql数据库中的两个表比对数据并更新等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存