查询学生表中,成绩大于等于70分的学生,只显示前五名,降序排列
/*查找分数大于等于70的学生成绩
只要前五名,降序排列*/
SELECT * FROM stu
INNER JOIN fraction
ON fraction.`id`=stu.`id`
WHERE EXISTS (
SELECT id FROM fraction WHERE javaNum>=70
)
ORDER BY fraction.`javaNum` DESC
LIMIT 0,5;
如果 NOT EXISTS 字查询结果为false则执行外部查询的代码,如果为true则不执行外部查询代码
案例:如果上述成绩表中的所有学生的成绩都没有大于等于100分的,那么平均分+5
/*如果成绩表中的所有学生的成绩都没
有大于等于100分的,那么平均分+5*/
# AVG(javaNum+5) 也行
SELECT AVG(javaNum)+5 AS 平均分 FROM fraction
WHERE NOT EXISTS (
SELECT * FROM fraction WHERE javaNum+5>=105
);