SQL外连接中如何使用AND条件?

在类似SELECT XX FROM XX JOIN XX ON XX = XX AND XXXXX 这样的语句中,AND条件是怎么使用的呢?
例如,执行下面这条SQL语句时

sqlSELECT s.s_no,c.course_no,score
FROM student s LEFT JOIN choice c ON s.s_no = c.s_no;

结果如下:
图片描述

在后面加上AND条件后

sqlSELECT 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行结果也被过滤了呢?

阅读 4.4k
2 个回答

当你写score != 88; 就暗含了score不为空的条件
如果你希望原第9行显示,你要写成isnull(score,0)!=88

请在SQL后面加一个order by,人为指定其排序规则,防止由于结果的排序问题导致第一张表第9行记录出现在很后面

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题