Exists语句原理就是每一个instructor行都会放入exists括号内进行匹配,如果下面的语句中存在符合where的要求的行,则该行加入结果中
所以假如把where语句改成单单salary>60000,则数据库中只要存在大于60000的行,那么instructor每一列对应的都会是真,结果如下图
Exists语句原理就是每一个instructor行都会放入exists括号内进行匹配,如果下面的语句中存在符合where的要求的行,则该行加入结果中
所以假如把where语句改成单单salary>60000,则数据库中只要存在大于60000的行,那么instructor每一列对应的都会是真值,都会返回,举salary=40000的列为例子,他也会把salary=75000这一行放入下面的where语句,所以40000也会返回
但如果加入i.salary=instructor.salary这一行,再举40000这个例子,对于那些salary大于60000的行来说,i.salary!=instructor.salary,因此exists括号内为假,对于salary=40000这一行来说,salary>60000为假,因此括号内始终为假,40000不会被加进结果中
下面附上instructor表格中全部数据