怎么把相同名字的科目放在一行上

QQ截图20201009163836.png

用户50636515 发布于 2020-10-9 16:39
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
张洪威Lv6高级互助
发布于2020-10-9 16:48(编辑于 2020-10-9 16:49)

select a.*,b.french from (select distinct name,english from table where english is not null) a

left join (select distinct name,french from table where french is not null)b on a.name=b.name

大概就这样,参照自己数据库类型理解改下。

最佳回答
0
ColdmanLv6高级互助
发布于2020-10-9 16:41(编辑于 2020-10-9 16:59)

查出所有名字去重(子查询1)

查出所有英语成绩不为空的(子查询2)

查出所有法语成绩不为空的(子查询3)

1left join 2left join 3

select t1.name,t2.english,t3.french from
(select distinct name from table) t1 left join
(select name,english from table where english is not null) t2 
on t1.name = t2.name
left join
(select name,french from table where french is not null) t3
on t1.name = t3.name


  • 3关注人数
  • 333浏览人数
  • 最后回答于:2020-10-9 16:59
    请选择关闭问题的原因
    确定 取消
    返回顶部