SP:不等于运算符不工作
INNER JOIN StudentSubjectMapping SS ON SM.StudentID=SS.StudentID
WHERE [email protected] OR @CourseID=0
AND [email protected] OR @ClassID=0
AND [email protected] OR @ClassSectionID=0
AND SD.StudentID <> SS.StudentID
SP:不等于运算符不工作
INNER JOIN StudentSubjectMapping SS ON SM.StudentID=SS.StudentID
WHERE [email protected] OR @CourseID=0
AND [email protected] OR @ClassID=0
AND [email protected] OR @ClassSectionID=0
AND SD.StudentID <> SS.StudentID
尝试添加括号()
在以下几点:
WHERE ([email protected] OR @CourseID=0)
AND
([email protected] OR @ClassID=0)
AND
([email protected] OR @ClassSectionID=0)
AND
SD.StudentID<>SS.StudentID
使用LEFT JOIN
代替
LEFT JOIN StudentSubjectMapping SS ON SM.StudentID=SS.StudentID
WHERE [email protected] OR @CourseID=0
AND [email protected] OR @ClassID=0
AND [email protected] OR @ClassSectionID=0
AND SS.StudentID IS NULL
可以使用NOT IN
选择那些StudentIDs
不存在StudentSubjectMapping
INNER JOIN StudentSubjectMapping SS ON SM.StudentID=SS.StudentID
WHERE ([email protected] OR @CourseID=0)
AND ([email protected] OR @ClassID=0)
AND ([email protected] OR @ClassSectionID=0)
AND (SD.StudentID NOT IN (SELECT StudentID FROM StudentSubjectMapping))
几乎是正确的。无需使用INNER JOIN。感谢您的支持。 – Jithin
感谢您的支持。答:
WHERE
([email protected] OR @CourseID=0)
AND
([email protected] OR @ClassID=0)
AND
([email protected] OR @ClassSectionID=0)
AND
SM.StudentID NOT IN (SELECT StudentID FROM StudentSubjectMapping)
是的,并用于记录:查看SQL运算符优先级;至少AND & OR ;) –
是什么SD.StudentID .... SD –
或者是之前和.. – Shnugo
使用,或者你必须非常小心你如何使用它,否则结果将是意想不到的。 –