weixin_39472492
weixin_39472492
采纳率83.3%
2020-05-07 16:27

请教:一条sql不知道错在哪里

20
已采纳

select a.员工姓名,b.s,c.考核等级 from 员工名单表 as a,员工考核表 as c left join (select 员工ID,sum(差旅费) as s from 员工差旅费记录 group by 员工ID) as b on a.员工ID=b.员工ID where a.员工ID=c.员工ID

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

4条回答

  • lhzlhk lhzlhk 1年前

    看下层级结构,from tbl1, tbl2 left join tbl3 必然有错。
    可以改成:
    select a.员工姓名,b.s,c.考核等级
    from 员工名单表 as a
    left join 员工考核表 as c
    on a.员工ID=c.员工ID
    left join (select 员工ID,sum(差旅费) as s
    from 员工差旅费记录
    group by 员工ID) as b
    on a.员工ID=b.员工ID

    点赞 评论 复制链接分享
  • clk_esunny clk_esunny 1年前

    不知道你这个sql的目的是什么,但是,这样用 from t1, t2 left join t3 是错误的,下面我的一种正确用法,看一下是不是你需要的
    select
    t.员工姓名,
    b.s,
    t.考核等级
    from
    (select a.员工ID, a.员工姓名, c.考核等级 from 员工名单表 as a, 员工考核表 as c where a.员工ID=c.员工ID) as t
    left join
    (select 员工ID,sum(差旅费) as s from 员工差旅费记录 group by 员工ID) as b

    on t.员工ID=b.员工ID

    点赞 评论 复制链接分享
  • xiaoxiaobai250 xiaoxiaobai250 1年前

    试下楼上说的,先a表 left join c表,再leftjoin b表

    点赞 评论 复制链接分享
  • gongjiaoka 一个半吊子的码农 1年前

    感觉有问题,a 表 和 c 表 需要先关联;建议也用left join

    点赞 评论 复制链接分享

相关推荐