左表有58条数据右表有200条数据但为什么leftjoin会显示出200条数据?只要左表的58

2121

报表xx 发布于 2021-9-24 15:45
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
axingLv6专家互助
发布于2022-3-29 23:49

只要左表58条,使用left join 没有错

检查你写的sql

https://www.runoob.com/sql/sql-join-left.html

最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-9-24 15:47(编辑于 2021-9-24 16:51)

错了 left join 是已左表为源在右表中匹配数据,它的结果数据记录是大于等于左表记录数量(没匹配上的仍然显示,多次匹配上的就匹配几次显示几次)

  • 报表xx 报表xx(提问者) SELECT A.F_Stort_Date,A.factoryname,A.industryname,B.f_stort_type_name,A.投分选量,A.废弃烟叶量,A.废弃烟末量,A.一类杂物量,A.二三类杂物 FROM (select F_Stort_Date,factoryname,industryname,f_stort_type_id, sum(f_stort_weight) as 投分选量, sum(f_Waste_Weight) as 废弃烟叶量, sum(F_Waste_YM) as 废弃烟末量, sum(F_Clutter_1) as 一类杂物量, sum(F_Clutter_23) as 二三类杂物 FROM (SELECT a.* FROM View_Stort_Fill a INNER JOIN (SELECT max(lock_time ) lock_time FROM View_Stort_Fill ) b ON a.lock_time=b.lock_time) WHERE F_Stort_Date BETWEEN \'2021-06-27\' AND \'2021-08-01\' AND factoryname=\'保山复烤厂\' group by F_Stort_Date,factoryname,industryname,f_stort_type_id ORDER BY F_Stort_Date) A LEFT JOIN (SELECT f_stort_type_name,f_stort_type_id FROM v_fill_stort_plan) B ON A.f_stort_type_id=B.f_stort_type_id
    2021-09-24 15:59 
  • Z4u3z1 Z4u3z1 回复 报表xx(提问者) 抱歉理解错误 如果 A.F_Stort_Date,A.factoryname,A.industryname,B.f_stort_type_name,A.投分选量,A.废弃烟叶量,A.废弃烟末量,A.一类杂物量,A.二三类杂物 这些字段有完全重复行的就改成 distinct(A.F_Stort_Date),A.factoryname,A.industryname,B.f_stort_type_name,A.投分选量,A.废弃烟叶量,A.废弃烟末量,A.一类杂物量,A.二三类杂物
    2021-09-24 16:52 
最佳回答
0
用户a8068717Lv4初级互助
发布于2021-9-24 17:03
可能字段存在null,用isnull函数试试
最佳回答
0
就TM你叫夏洛啊Lv6中级互助
发布于2021-9-24 17:09(编辑于 2021-9-24 17:09)

inner join 不就搞定了吗

最佳回答
0
Rose_RubyLv6初级互助
发布于2021-9-25 09:28
LEFT JOIN
namenameagenameage
AA12A12
BA13A13
CB36B36
DC80C80
EDnull
Enull

最佳回答
0
Wq0706Lv4见习互助
发布于2021-9-25 11:09

你把A.f_stort_type_id、B.f_stort_type_id这两个字段显示出来看下

  • 4关注人数
  • 675浏览人数
  • 最后回答于:2022-3-29 23:49
    请选择关闭问题的原因
    确定 取消
    返回顶部