wohuozheng
vvvvip用户
采纳率6.3%
2017-12-26 03:28 阅读 7.1k

sql语句查询出来数据重复

5

select dbm,zm from zd_zmzd where dbm in(select dbm from fh_qsyt1_user) order by dbm
我这查询出来的dbm,zm都是重复一次的数据,怎么回事?我记得前一段还没有什么问题啊

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

43条回答 默认 最新

  • winner_winner6 winner_winner6 2017-12-26 07:52

    select dbm from fh_qsyt1_user 查出来的dbm是多个

    点赞 3 评论 复制链接分享
  • wohuozheng vvvvip用户 2017-12-26 03:32

    别说加distinct的,这句sql哪里有问题?

    点赞 2 评论 复制链接分享
  • nancysophia nancysophia 2017-12-26 03:32

    请确认表里数据是否重复,句子没问题

    点赞 1 评论 复制链接分享
  • wodeai258 wodeai258 2017-12-26 03:39

    select dbm from fh_qsyt1_user 查出来的dbm是多个吧

    点赞 1 评论 复制链接分享
  • qq_27703473 创意飞鸟 2017-12-26 06:47

    通常关联外部表时 是需要做分组的group by否则 显示结果很有很大纰漏

    fh_qsyt1_user 你这个表出的问题

    如果是fh_qsyt1_user关联表的话 select dbm from fh_qsyt1_user 你这种没有条件控制查询所有 必然会出现重复结果 导致整体结果重复
    如果fh_qsyt1_user 不是关联表的话 看看有没有重复脏数据
    再者 是不是缓存的影响

    点赞 1 评论 复制链接分享
  • qq_14919165 qq_14919165 2017-12-26 03:32

    group by 分组

    点赞 评论 复制链接分享
  • oFangWa 方娃 2017-12-26 03:36

    zd_zmzd表里的dbm字段不是唯一约束的,有重复记录

    点赞 评论 复制链接分享
  • oFangWa 方娃 2017-12-26 03:39

    dbm,zm都是重复一次的数据,不代表是同一条数据,把主键也查出来看看

    点赞 评论 复制链接分享
  • oFangWa 方娃 2017-12-26 03:44

    select dbm,zm,count(1) from zd_zmzd group by dbm,zm检查下

    点赞 评论 复制链接分享
  • cavpig 小小猪pig 2017-12-26 03:45

    首先看看你的子句查询出来的是不是重复的数据

    点赞 评论 复制链接分享
  • bin470398393 Irvin-bin 2017-12-26 03:56

    由于你两个表有相同字段,只需要带上表名或重命名即可

    点赞 评论 复制链接分享
  • sun751059852 风骚执笔BK 2017-12-26 04:01

    括号里面用distinct

    点赞 评论 复制链接分享
  • malpde malpde 2017-12-26 04:22

    直接单表查 dbm=某个值看是否是真的重复

    点赞 评论 复制链接分享
  • baidu_29835891 baidu_29835891 2017-12-26 04:40

    (select dbm from fh_qsyt1_user) 在这部分检索出来的结果,就是带重复的dbm,所以会存在重复问题,可以在这部分家distinct。

    点赞 评论 复制链接分享
  • Eason_HD Three-Autumn 2017-12-26 05:14

    由于你两个表有相同字段

    点赞 评论 复制链接分享
  • gentleboy_ 小白_Lee 2017-12-26 05:17

    你可以用联合查询,可以不用子查询,这样不容易出错。

    点赞 评论 复制链接分享
  • wjqwh wjqwh 2017-12-26 05:23

    1.楼上所说两个表有相同字段不可能,如果出现这种情况会报错,因为字段有混淆。
    2.你的语句没有问题
    3.你所说的问题在于你的表中有真实的重复信息,请检查数据

    如果采纳请确认,急需C币下载文件,非常感谢!

    点赞 评论 复制链接分享
  • zengxhao zengxhao 2017-12-26 06:27

    select dbm from fh_qsyt1_user 这个查出来有没有重复数据?
    最好是把结果或者表的结构贴出来看看,上面的人都分析的差不多了,这个查询语句是挺简单逻辑。

    点赞 评论 复制链接分享
  • freedom97 freedom97 2017-12-26 06:42

    这条sql本身很简单,非要说问题的话, sql性能优化 一般禁止用in, 一般都用EXISTS
    例:select * from test1
    where EXISTS (select * from test2 where id2 = id1 )

    点赞 评论 复制链接分享
  • qq_35202514 cxy_zj 2017-12-26 06:47

    那个是唯一的字段 你直接分组一下 group by 去重一下 不行在后面加一个 having count(*)<1

    点赞 评论 复制链接分享
  • qq_35202514 cxy_zj 2017-12-26 06:48

    你group by 分组一下 不行再后面加个 having count(*)<1

    点赞 评论 复制链接分享
  • weixin_41163509 壹贰叁肆五 2017-12-26 07:10

    查一下 fh_qsyt1_user 表中 dbm 是不是有重复的

    点赞 评论 复制链接分享
  • u013007470 Jacky-G 2017-12-26 07:31

    语句看着没什么问题,且跟表fh_qsyt1_user是否字段相同的记录太多没关系,很可能是zd_zmzd表中相同字段dbm, zm的记录重复的太多。
    可以查询下整张表确认下看看,select * from zd_zmzd;

    点赞 评论 复制链接分享
  • ITXiaoYuan ITXiaoYuan 2017-12-26 08:49

    都是重复一次的数据,不代表是同一条数据,把主键也查出来看看

    点赞 评论 复制链接分享
  • weixin_38640986 weixin_38640986 2017-12-26 09:59

    你看看子句查出的是什么

    点赞 评论 复制链接分享
  • qq_37070988 qq_37070988 2017-12-26 13:06

    select dbm,zm from zd_zmzd zd where zd.dbm in(select dbm from fh_qsyt1_user fh) order by zd.dbm
    或者
    select dbm,zm from zd_zmzd zd where zd.dbm in(select dbm from fh_qsyt1_user fh) order by fh.dbm
    这样应该没问题了,主要是order by dbm中的dbm在两个表中都有,需要限制一下,指清dbm到底是哪个的dbm

    点赞 评论 复制链接分享
  • wpszzp 自然的微笑 2017-12-26 22:33

    加个where条件吧

    点赞 评论 复制链接分享
  • yangxh19800731 大牛2016 2017-12-27 10:20

    dbm和zm联合起来在表zd_zmzd 里不是主键,即不是唯一的, 后面的where条件只是过滤行,没有办法去重。

    点赞 评论 复制链接分享
  • romanticcrystal romanticcrystal 2017-12-28 06:57

    select dbm from fh_qsyt1_user 改成 select dbm from fh_qsyt1_user group by dbm

    点赞 评论 复制链接分享
  • xiaohundan12 xiaohundan12 2017-12-29 09:15

    先看看in里面的语句查询的是否是重复的,如果重复就是它的问题,如果不重复,可以创建两个和他们一样的表,都相应只添加几条数据(可以吧重复的数据摘取几条添加),用这两个表测试一下,这样可能更容易找到问题。

    点赞 评论 复制链接分享
  • qq_37773334 成少爷 2018-02-27 10:05

    子查询可能是多个结果集

    点赞 评论 复制链接分享
  • yangjiangli39 yangjiangli39 2018-03-05 01:02

    select dbm from fh_qsyt1_user 里面应该有重复的吧。

    点赞 评论 复制链接分享
  • Acer2016 BU凡 2018-03-28 08:18

    1.可能是数据库数据重复
    2.解决重复数据sql
    sql语句加distinct去除重复
    select distinct dbm,zm from zd_zmzd where dbm in(select dbm from fh_qsyt1_user) order by dbm

    点赞 评论 复制链接分享
  • alonelovely alonelovely 2018-04-18 07:16

    这个sql语句不像有问题啊,看看数据项有没有重复吧

    点赞 评论 复制链接分享
  • qq_39187545 qq_39187545 2018-05-03 09:15

    select dbm,zm from zd_zmzd where dbm in(select distinct dbm from fh_qsyt1_user) order by dbm

    点赞 评论 复制链接分享
  • Black_Fox123 Black_Fox123 2018-05-04 09:53

    select * from 数据库名称,这种情况默认下是查询所有的,也就是及时重复也会显示
    select DISTINCT * from 数据库名称

    点赞 评论 复制链接分享
  • qq_42268837 qq_42268837 2018-06-24 04:03

    对于某一列,可以用group by 假如group by是count值大于1,那就是重复语句了

    点赞 评论 复制链接分享
  • qq_34025152 qq_34025152 2018-07-10 06:37

    应该私子句查询出来的有重复的

    点赞 评论 复制链接分享
  • j1340400762 j1340400762 2018-07-20 09:43

    一般都要主键和外键吧,那样更明确吧

    点赞 评论 复制链接分享
  • qyhqs qyhqs 2018-11-06 04:03

    sql语句确实没问题,可能是数据库数据重复吧。或者可以通过加distinct关键字去重复

    点赞 评论 复制链接分享
  • dgtbh2011 dgtbh2011 2019-02-28 23:47

    参考group by have 语句

    点赞 评论 复制链接分享
  • CSDN_JPL csdn_JPL 2019-05-24 18:05

    多表联查的时候 有可能其中一个id关联的数据有多条 这样就会产生重复的数据了 建议用分组尝试一下

    点赞 评论 复制链接分享
  • a516606 a516606 2019-10-28 10:42

    select distinct mr.id,ifnull(mr.pid,0) as pid,mr.name
    from sys_role_res srr
    left join main_res mr on mr.id=srr.res_id
    left join sys_role sr on sr.id=srr.role_id
    left join bas_member_role bmr on bmr.role_id=sr.id
    left join bas_member bm on bmr.member_id=bm.id
    where bm.id = 4
    and mr.is_delete = 0
    and ifnull(mr.permission,0) = 0
    order by mr.id select distinct 查询值name from 表 where 条件

    点赞 评论 复制链接分享

相关推荐