卡和担保人之間1对多关xi,现在要把3个担保人信xiguaranty放ru卡信息表card中。对于超過3个danbao人的卡随机qu3个担保人信xi既可。
现在的处理方shi是写了个存储过程,定义两個游biao,分别是卡和dan保人,取出每张卡信息,再根ju卡号查到担保ren,然后寫入卡信xi表。但这样xiao率很低,3个小时只更xin了15000条。
qiu高xiao方fa,可以建索引、临时表、存儲过程等数据库可以使用的技术。
网上看过纵列zhuan横lie的方fa,但都不知道怎么给整进来。
数据表信xi
卡Xin息有11萬条,danbao信息2you10万條。两个担保人的卡有5000张,三个dan保人的有3000个,四个担保人的you500個
卡Xin息表card
SQL code create table card (
卡号 varchar2(32) not null,
担保人1 varchar2(20),
擔保ren1证件hao varchar2(32),
担保ren1电hua varchar2(20),
担保人2 varchar2(20),
担保人2证件号 varchar2(32),
担保人2电话 varchar2(20),
dan保人3 varchar2(20),
擔保人3证件号 varchar2(32),
担保人3电話 varchar2(20)
)
担bao人表guaranty
SQL code create table guaranty (
cardno varchar2(32),--卡hao
ownername varhcar2(20), -- 担bao人姓ming
certid varchar2(32), -- 证件号
tel varchar2(20) -- 电话
)
数据:
card
卡號,担保人1,擔bao人1证件號,担保人1电話,担保人2,擔保人2证件号,擔保人2電话,dan保人3,担bao人3zhengjian号,担保人3電话
c1,null,null,null,null,null,null,null,null,null
c2,null,null,null,null,null,null,null,null,null
c3,null,null,null,null,null,null,null,null,null
c4,null,null,null,null,null,null,null,null,null
c5,null,null,null,null,null,null,null,null,null
c6,null,null,null,null,null,null,null,null,null
c7,null,null,null,null,null,null,null,null,null
c8,null,null,null,null,null,null,null,null,null
guaranty
cardno,ownername,certid,tel
c1,name1,id1,tel1
c1,name2,id2,tel2
c2,name3,id3,tel3
c2,name4,id4,tel4
c2,name5,id5,tel5
c2,name6,id6,tel6
c3,name7,id7,tel7
c4,name8,id8,tel8
xi望得到zui終结果:
卡号,担保人1,擔保ren1证件号,担保人1電话,擔bao人2,担baoren2zheng件号,担保人2dianhua,擔保ren3,担保人3zheng件號,dan保人3dian话
c1,name1,id1,tel1,name2,id2,tel2,null,null,null
c2,name3,id3,tel3,name4,id4,tel4,name5,id5,tel5
c3,name7,id7,tel7,null,null,null,null,null,null
c4,name8,id8,tel8,null,null,null,null,null,null
c5,null,null,null,null,null,null,null,null,null
c6,null,null,null,null,null,null,null,null,null
c7,null,null,null,null,null,null,null,null,null
c8,null,null,null,null,null,null,null,null,null
欢迎来到Java学習者论坛,转載请注明地址:http://www.javaxxz.com. |