我在我的程序中有这个查询我希望查询忽略,如果它看到字母 NP或DN,但是当我这样写这个查询时它工作得很好,但确实忽略了字母NP或DN。
如何让查询忽略字母NP或DN?
SELECT
SUM(crd)
FROM
courses
INNER JOIN
student_record ON courses.course_number = student_record.course_number
INNER JOIN
grades ON student_record.grade = grades.letter
AND (student_record.grade != 'NP' OR student_record.grade != 'DN')
WHERE
student_record.id = 201102887
答案 0 :(得分:1)
使用NOT IN
:
ON student_record.grade = grades.letter AN
(student_record.grade NOT IN ('NP' , 'DN')
对您的逻辑的修复是使用AND
而不是OR
。逻辑操作可能会让人感到困惑,尤其是负面操作。在这种情况下,我认为NOT IN
更容易编写和理解。