我有一个包含3列的表称为记录所有科目:学生,科目和年级如何选择所采取的所有学生,使得学生在他们拿了级> 50
每个{X,Y,Z }表中的条目意味着学生x将y分为z等级。如果学生x没有参加课程y,那么表格中就不存在该参赛作品。所以这个表格就像所有学生的大学记录以及他们所学的科目。
我要选择那些采取所有学生所有科目,所有学生在这些科目的成绩都高于60
我试图创建
CREATE TABLE temp SELECT subject FROM records WHERE grade > 60;
然后我用临时表创建一个具有主题和数量的新表,其中count统计接受该主题的学生数,然后删除所有具有<学生数的行。但我知道这是非常低效的。
我怎样才能做到这一点更有效地使用MySQL?
此外,如果你能给我提供良好的MySQL资源/教程链接,这样我可以练习,我将感谢。我是MySQL的新手,我正在处理大型数据库,我需要让我的查询更高效和直接。
编辑 - 添加了更多的阅读建议。 –
感谢您的建议,用这种方法的一个问题是,如果主题不采取每个人,但由少数学生采取与这一小群学生拿到> = 60,然后这一主题将在此查询显示出来,但我不希望那。 –
我明白。定义“小组”,我会更新。或者你想让这个主题被所有学生拍摄? –