数据库SQL
通常情况下SQL采用exists要比in效率高。exists()后面的子查询被称做相关子查询,并且子查询是不返回列表的值的,只返回一个TRUE或FALSE的Boolean型结果。如果子查询包含行,则返回 TRUE,否则FALSE。
LZ的SQL语句是一个嵌套查询,分3步进行分析:
1、最里面查询:得到所有满足 三个表,按码关联相等的选课记录行。
2、中间的查询:得到不满足(not exists)最里面查询的课程记录行,就是没人选的课程记录行。
2、最外面查询:得到不满足(not exists)中间查询的学生记录行。实际就是检索出已选课的学生记录行。
。全部
通常情况下SQL采用exists要比in效率高。exists()后面的子查询被称做相关子查询,并且子查询是不返回列表的值的,只返回一个TRUE或FALSE的Boolean型结果。如果子查询包含行,则返回 TRUE,否则FALSE。
LZ的SQL语句是一个嵌套查询,分3步进行分析:
1、最里面查询:得到所有满足 三个表,按码关联相等的选课记录行。
2、中间的查询:得到不满足(not exists)最里面查询的课程记录行,就是没人选的课程记录行。
2、最外面查询:得到不满足(not exists)中间查询的学生记录行。实际就是检索出已选课的学生记录行。
。收起