在类似SELECT XX FROM XX JOIN XX ON XX = XX AND XXXXX
这样的语句中,AND条件是怎么使用的呢?
例如,执行下面这条SQL语句时
sql
SELECT s.s_no,c.course_no,score FROM student s LEFT JOIN choice c ON s.s_no = c.s_no;
结果如下:
在后面加上AND条件后
sql
SELECT s.s_no,c.course_no,score FROM student s LEFT JOIN choice c ON s.s_no = c.s_no AND score != 88;
结果变成了:
原本的第7行被过滤掉可以理解,为什么原本的第9行结果也被过滤了呢?
当你写score != 88; 就暗含了score不为空的条件
如果你希望原第9行显示,你要写成isnull(score,0)!=88