SQL查询只参加 1 次考试就通过

SQL语句输出结果不理想

用代码块功能插入代码,请勿粘贴截图

输出了考了两次但是通过的学生

img

SELECT 身份证号, 姓名
FROM regi
WHERE 身份证号 IN (SELECT 身份证号 FROM grade GROUP BY 身份证号 HAVING COUNT(身份证号)=1 WHERE 外语>=50 AND 专业课1>=50 AND 专业课2>=50 AND 外语+专业课1+专业课2>=200);

查询只参加 1 次考试就通过的考试姓名和身份证号

SELECT 身份证号, 姓名
FROM regi
WHERE 身份证号 IN (
select 身份证号 from grade where 外语>=50 AND 专业课1>=50 AND 专业课2>=50 AND 外语+专业课1+专业课2>=200 group by 身份证号 having count(身份证号) = 1)