qq_32864641
qq_32864641
采纳率100%
2021-03-01 16:12

有以下两张表学生表(学生ID,姓名,性别),成绩表(学生ID,科目,成绩)

已采纳

有以下两张表学生表(学生ID,姓名,性别),成绩表(学生ID,科目,成绩)两表之间使用 学生ID进行 关联,查询出所有科目都大于60分得学生姓名,性别

这个用sql语句该怎么实现

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

4条回答

  • qq_45348083 时倾丶Te fuir 1月前

    学生表(学生ID,姓名,性别)
    成绩表(学生ID,科目,成绩)
    两表之间使用 学生ID进行 关联,
    查询出所有科目都大于60分得学生姓名,性别

    student(id,name,gender)
    results(id,subjects,score)

    select a.name,a.gender from student a,results b where a.id=b.id and b.score>60;

    点赞 评论 复制链接分享
  • u014043168 hcqDezhp 1月前

    select 学生ID,姓名,性别 from 学生表 where id not in (select 学生ID from 成绩表 where 成绩 < 60);

    点赞 评论 复制链接分享
  • theo789 Metz 1月前

    学生表:student

    成绩表:result

     

    SQL语句:根据group by student_id having score>60 可以获取到大于60分的学生id

    select
      name,
      sex
    from
      student
    where
      id in (
        select
          t.student_id
        from
          (
            select
              *
            from
              result
            group by
              student_id
            having
              score >= 60
          ) as t
      )
    点赞 评论 复制链接分享
  • zgn3832556 在路上的jar 1月前

    SELECT
      学生姓名,
      学生性别
    FROM
      (SELECT
        COUNT(学生ID) AS 科目数,
        学生姓名,
        学生性别
      FROM
        学生表,
        成绩表
      WHERE 学生表.学生ID = 成绩表.学生id
        AND 成绩表.成绩 > 60
      GROUP BY 学生ID)
    WHERE 科目数 =
      (SELECT
        COUNT(1)
      FROM
        (SELECT DISTINCT
          (科目)
        FROM
          `成绩表`) m)

    备注:这个问题主要考察使用DISTINCT将科目表从成绩表里构建出来

    点赞 评论 复制链接分享