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

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

这个用sql语句该怎么实现

学生表(学生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;

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

学生表: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
  )

 

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将科目表从成绩表里构建出来