问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)

J2EE 码拜 10年前 (2015-04-18) 2339次浏览 0个评论

3张表,1.yiche (modelid ,parentid) 2. param(id,paramid,value) 3.value(modelid,paramid,value) 查询相同数据 ,parentid 是modelid的上级 ,param表中有4个属性paramid分别对应的是1 ,4,78,256 每个modelid都有这四个属性,有什么简单的方法判断是否有这样的数据,modelid不同,但其他属性相同 包括parentid 和param表中paramid对应的value,最好附上程序

问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
都去打末日人机了啊 
问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
大神们小弟刚参加工作 帮帮忙
问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
25分
select a.*,b*,c.*  from yiche a  left join value b on a.modelid = b.modelid left join param c on b.paramid = c.paramid
问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
我试过SQL语句查询 量太大了 直接就溢出了   要用程序去弄
 是现查 parentid 然后再查parentid下的modelid ,最后比较其他的属性,找出相同的
问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
25分
你还是把问题描述清楚,我看了一下,拿纸写了一下,结果发现没看懂。“param表中有4个属性paramid分别对应的是1 ,4,78,256 每个modelid都有这四个属性,”什么意思啊
问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
引用 5 楼 xiangnan129 的回复:

你还是把问题描述清楚,我看了一下,拿纸写了一下,结果发现没看懂。“param表中有4个属性paramid分别对应的是1 ,4,78,256 每个modelid都有这四个属性,”什么意思啊

这是个属性对应的是1=出厂价格  4=排量   78=出厂日期   256=最大价格 每个modelid都有这四个属性  最后的判断也是根据这四个属性来判断相同的

问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
25分
引用 4 楼 jinwei877811422 的回复:

我试过SQL语句查询 量太大了 直接就溢出了   要用程序去弄
 是现查 parentid 然后再查parentid下的modelid ,最后比较其他的属性,找出相同的

哪张表数据大?

问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
引用 7 楼 xiamizy 的回复:
Quote: 引用 4 楼 jinwei877811422 的回复:

我试过SQL语句查询 量太大了 直接就溢出了   要用程序去弄
 是现查 parentid 然后再查parentid下的modelid ,最后比较其他的属性,找出相同的

哪张表数据大?

第一张表 几万条数据

问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
引用 8 楼 jinwei877811422 的回复:
Quote: 引用 7 楼 xiamizy 的回复:
Quote: 引用 4 楼 jinwei877811422 的回复:

我试过SQL语句查询 量太大了 直接就溢出了   要用程序去弄
 是现查 parentid 然后再查parentid下的modelid ,最后比较其他的属性,找出相同的

哪张表数据大?

第一张表 几万条数据

那你想全查出来吗? 
先distinct一下,一段一段取呢,400一取这样。

问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
25分
话说楼主直接把表弄好,在说查询条件。。。。这样写,,看的有鸭梨
问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
引用 10 楼 u013652613 的回复:

话说楼主直接把表弄好,在说查询条件。。。。这样写,,看的有鸭梨

好吧我错了 我粘下代码吧  
public static void main(String[] args) throws SQLException {
Set<CarInfos> set = new TreeSet<CarInfos>();
DatabaseOperator dbop = new DatabaseOperator();
FenYeQuery fyq = new FenYeQuery(“select id, paramid, modelid, value from tbl_car_param_value_yiche where paramid in (1, 4, 75, 287) “);
long index = 1;
CarInfos carInfos = null;
String insertSql = null;
ResultSet rs = null;

while(true) {
rs = fyq.query();
if(rs.next()) {
rs.previous();
}
else {
break;
}

while(rs.next()) {
carInfos = new CarInfos();
carInfos.setId(rs.getLong(“id”));
carInfos.setModelid(rs.getLong(“modelid”));
carInfos.setParamid(rs.getLong(“paramid”));
carInfos.setValue(rs.getString(“value”));

if(set.contains(carInfos)) {
insertSql = “insert into tbl_car_param_value_yiche_bak(” +
“id, modelid, paramid, value) values(” + 
carInfos.getId() + “,” + carInfos.getModelid() + “,” + 
carInfos.getParamid() + “, “”” + carInfos.getValue() + “””);”;
dbop.executeSql(insertSql);
}
else {
set.add(carInfos);
System.out.println(“Add Success! Index:” + index++);
}
}
}

System.out.println(“Success!”);
}
}

问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
我在另一个方法里重写了equals 方 法  后来才知道 比的是hashcode。 效率特别低。。
问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
引用 12 楼 jinwei877811422 的回复:

我在另一个方法里重写了equals 方 法  后来才知道 比的是hashcode(不好使 根本不走equals)。 效率特别低。。

还有下面的插入重复的因为查出的数据是单条的,单挑重复就直接拿出来了,我要的结果是4条都相同 (1,4,75,287)才返回


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明问题标签用户 急 处理大量数据 查找出重复的并去重(去重的导入另一张表中)
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!