oracle两表相同字段去重,oracle 多表多字段去重+排序,该怎么处理

oracle 多表多字段去重+排序

实在没办法,求助大家了

本来是hql语句,是正确的

from PZjlwf zjlwf where 1=1 and zjlwf.dbzId.id in (?,?,?,?) and zjlwf.pcid.id = ? order by zjlwf.dbzId.zbh

但是要加另一个排序条件:

select zjlwf from PZjlwf zjlwf,PPwhzjdfz pwhzjdfz where 1=1 and zjlwf.pcid=pwhzjdfz.pcid  and zjlwf.dbzId.id in (?,?,?,?) and zjlwf.pcid.id = ? order by zjlwf.dbzId.zbh,pwhzjdfz.zjjs

加了以后就狂重复,重复了12次。。。

转换的sql语句为:

select

pzjlwf0_.id as id133_,pzjlwf0_.BB as BB133_,

pzjlwf0_.CJSJ as CJSJ133_,pzjlwf0_.DBTS as DBTS133_,

pzjlwf0_.DBYFJE as DBYFJE133_,pzjlwf0_.DBZID as DBZID133_,

pzjlwf0_.LWFKSJE as LWFKSJE133_,pzjlwf0_.LWFSFJE as LWFSFJE133_,

pzjlwf0_.LWFYFJE as LWFYFJE133_,pzjlwf0_.ND as ND133_,

pzjlwf0_.PCID as PCID133_,pzjlwf0_.PSTS as PSTS133_,

pzjlwf0_.PSYFJE as PSYFJE133_,pzjlwf0_.PSZID as PSZID133_,

pzjlwf0_.PSZFBZ as PSZFBZ133_,pzjlwf0_.PSZFLX as PSZFLX133_,

pzjlwf0_.SCZTW as SCZTW133_,pzjlwf0_.ZDRS as ZDRS133_,

pzjlwf0_.ZFBZ as ZFBZ133_,pzjlwf0_.ZFLX as ZFLX133_,

pzjlwf0_.ZJSBXXID as ZJSBXXID133_,pzjlwf0_.ZT as ZT133_

from

PS_ZJLWF pzjlwf0_,

PS_PWHZJDFZ ppwhzjdfz1_,

PS_DBZ pdbz2_

where

pzjlwf0_.DBZID=pdbz2_.id

and 1=1

and pzjlwf0_.PCID=ppwhzjdfz1_.PCID

and (

pzjlwf0_.DBZID in (963, 964, 965, 966)

)

and pzjlwf0_.PCID=874

order by

pdbz2_.ZBH,

ppwhzjdfz1_.ZJJS

用了distinct也是不行,后来参考帖子:

oracle 多表多字段去重问题!

去重了,但是貌似排序不对吧,反正数据库里看

10171032.png

都是0了,之前肯定不是0的。

真心不懂啊,求帮助!

1.为什么查询会重复,不是懒加载,我加了也不行

2.为什么最后查出zjjs会都是0

------解决思路----------------------

PZjlwf zjlwf,PPwhzjdfz pwhzjdfz

你这两个表不是一一对应吧,这个表1条,对应另一个表12条?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值