我想更加合理的方式是将第二种方案放在首行,毕竟这才是大部分人的思维方式,但这篇文章主要是讲解 -(-1) == +1的问题。
1.首先从子查询中确定 Employee 表中的country 必须是 USA
2.子子查询中将Employee查询到的结果与 Orders 表相关联, 那么关联的条件是 : Orders表的 CustomerID 与 Customers 表的CustomerID相等, 并且 Orders 的 employeeid 与 employee表的employeeid相等,再将所有值取反。变成了这样的情况:
子子查询中将Employee查询到的结果与 Orders 表相关联, 那么关联的条件是 : Orders表的 CustomerID 与 Customers 表的CustomerID不相等, 并且 Orders 的 employeeid 与 employee表的employeeid不相等
3.最后回到最开始的NOT EXISTS
它的含义就是: 不是这些不相等的数据,那么其言下之意就是取相等的数据。这样就做到了 ’负负得正‘ 的道理
所以任何逻辑的数据库脚本语言都能写成两个不同的SQL(Structured Query Language)语句。 解释不对的地方还请多批评指教!