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

jinwei877811422 2014-08-01 08:29:03
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,最好附上程序
...全文
355 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinwei877811422 2014-08-04
  • 打赏
  • 举报
回复
引用 12 楼 jinwei877811422 的回复:
我在另一个方法里重写了equals 方 法 后来才知道 比的是hashcode(不好使 根本不走equals)。 效率特别低。。
还有下面的插入重复的因为查出的数据是单条的,单挑重复就直接拿出来了,我要的结果是4条都相同 (1,4,75,287)才返回
jinwei877811422 2014-08-04
  • 打赏
  • 举报
回复
我在另一个方法里重写了equals 方 法 后来才知道 比的是hashcode。 效率特别低。。
jinwei877811422 2014-08-04
  • 打赏
  • 举报
回复
引用 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!"); } }
灰太狼A代 2014-08-03
  • 打赏
  • 举报
回复
话说楼主直接把表弄好,在说查询条件。。。。这样写,,看的有鸭梨
jinwei877811422 2014-08-02
  • 打赏
  • 举报
回复
引用 7 楼 xiamizy 的回复:
[quote=引用 4 楼 jinwei877811422 的回复:] 我试过SQL语句查询 量太大了 直接就溢出了 要用程序去弄 是现查 parentid 然后再查parentid下的modelid ,最后比较其他的属性,找出相同的
哪张表数据大?[/quote] 第一张表 几万条数据
大齐zy 2014-08-02
  • 打赏
  • 举报
回复
引用 4 楼 jinwei877811422 的回复:
我试过SQL语句查询 量太大了 直接就溢出了 要用程序去弄 是现查 parentid 然后再查parentid下的modelid ,最后比较其他的属性,找出相同的
哪张表数据大?
jinwei877811422 2014-08-02
  • 打赏
  • 举报
回复
引用 5 楼 xiangnan129 的回复:
你还是把问题描述清楚,我看了一下,拿纸写了一下,结果发现没看懂。“param表中有4个属性paramid分别对应的是1 ,4,78,256 每个modelid都有这四个属性,”什么意思啊
这是个属性对应的是1=出厂价格 4=排量 78=出厂日期 256=最大价格 每个modelid都有这四个属性 最后的判断也是根据这四个属性来判断相同的
scott_129 2014-08-02
  • 打赏
  • 举报
回复
你还是把问题描述清楚,我看了一下,拿纸写了一下,结果发现没看懂。“param表中有4个属性paramid分别对应的是1 ,4,78,256 每个modelid都有这四个属性,”什么意思啊
jinwei877811422 2014-08-02
  • 打赏
  • 举报
回复
我试过SQL语句查询 量太大了 直接就溢出了 要用程序去弄 是现查 parentid 然后再查parentid下的modelid ,最后比较其他的属性,找出相同的
大齐zy 2014-08-02
  • 打赏
  • 举报
回复
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
jinwei877811422 2014-08-02
  • 打赏
  • 举报
回复
大神们小弟刚参加工作 帮帮忙
大齐zy 2014-08-02
  • 打赏
  • 举报
回复
引用 8 楼 jinwei877811422 的回复:
[quote=引用 7 楼 xiamizy 的回复:] [quote=引用 4 楼 jinwei877811422 的回复:] 我试过SQL语句查询 量太大了 直接就溢出了 要用程序去弄 是现查 parentid 然后再查parentid下的modelid ,最后比较其他的属性,找出相同的
哪张表数据大?[/quote] 第一张表 几万条数据[/quote] 那你想全查出来吗? 先distinct一下,一段一段取呢,400一取这样。
jinwei877811422 2014-08-01
  • 打赏
  • 举报
回复
都去打末日人机了啊

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧