我有一个Student_classes表,如下所示:
Student_classes
Student Classes
Jon w. Algebra
Jon w. Algebra
Jake English
Scott Spanish
Scott Korean
Neo Physics
Anderson Chemistry
Anderson Psychology
我需要从这个表中获取数据。
如果涵盖所有要点,则以下内容应在最终查询中:
Jake English (covers point 1)
Jon w. Algebra (covers point 2)
Scott Korean (covers point 3)
Anderson Chemistry (covers point 4)
Anderson Psychology (covers point 4)
通过以下查询,我认为我已经覆盖了所有基础,但看起来它不会涵盖第4点。
SELECT DISTINCT student, classes FROM student_classes
WHERE classes <> 'Spanish'
GROUP BY Student;
我试图采取我所遇到的更大问题的一个子集。
有人可以指导我提出一个包含所有4个点的查询吗?
我无法更改我的数据库设计。
答案 0 :(得分:1)
如果您删除GROUP BY
,我认为您应该获得所需的结果SELECT DISTINCT student,
classes
FROM student_classes
WHERE classes <> 'Spanish'
DISTINCT负责第1,2和4点.WHERE子句负责第3点。
或者,您可以按两者进行分组:
SELECT DISTINCT student,
classes
FROM student_classes
WHERE classes <> 'Spanish'
GROUP BY student,
classes
答案 1 :(得分:0)
试试这个:
SELECT DISTINCT student, classes FROM student_classes
WHERE classes <> 'Spanish';
虽然我建议您重新考虑使用学生的姓名作为关键字,而是使用数字ID /创建学生表,因为无法区分同一班级中同名学生...