两张表leftjoin,为什么我会生成重复的数据呢?左表两条,结果一连就变4条

image.pngimage.png

用户N1887570 发布于 2021-9-1 18:09
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
让过去Lv6中级互助
发布于2021-9-1 18:18

右表也有两条对应ID的数据吧,你现在关联条件只有ID,只要ID相同就关联一下,就2*2变成4条了。

  • 用户N1887570 用户N1887570(提问者) 对 右表也有两条,我该怎么改呢?
    2021-09-01 18:23 
  • 让过去 让过去 回复 用户N1887570(提问者) 看你最终需求,如果同ID,你只要一条,你就先GROUP BY再去关联。如果你需要的就是两条,就增加关联条件
    2021-09-01 18:26 
  • 青鸟ekko 青鸟ekko 回复 用户N1887570(提问者) 你把结果生成excel导出来
    2021-09-01 18:29 
  • 用户N1887570 用户N1887570(提问者) 回复 让过去 需求是 左表有两条,就只要这两条数据,右表只是取一个值加入左表
    2021-09-01 18:31 
  • 让过去 让过去 回复 用户N1887570(提问者) 那就加多加点关联条件,确保左表一条数据靠关联条件只会连到右表一条数据
    2021-09-02 09:29 
最佳回答
0
青鸟ekkoLv6见习互助
发布于2021-9-1 18:23(编辑于 2021-9-1 18:23)

生成重复的数据时因为你最后连接的第三张表,以on为条件的连接关系是一对多,所以才会有重复的

最佳回答
0
用户a8068717Lv4初级互助
发布于2021-9-2 10:44
使用子报表,展示多条信息; 或者使用GROUP-BY-stuff拼接:对于差异字段使用分割符(如",")进行拼接(对于sqlserve,stuff),显示的时候再split(",")进行横向/纵向扩展。
最佳回答
0
JohnWalkerLv5见习互助
发布于2021-9-3 13:18

select后面加个distinct呢

最佳回答
0
lf6256113Lv2见习互助
发布于2021-9-3 19:04
笛卡尔积了
最佳回答
0
用户CKn4B8768Lv2见习互助
发布于2021-9-4 23:06
把右边 使用聚合求值,把相同记录去重,select distinct 字段 1,sum(字段2) from 表 group by 字段1
  • 4关注人数
  • 695浏览人数
  • 最后回答于:2021-9-4 23:06
    请选择关闭问题的原因
    确定 取消
    返回顶部