为什么<> SQL中的ALL和NOT别名是什么?

时间:2014-04-13 16:49:23

标签: mysql sql

因此mySQL dev site告诉我<> ALLNOT IN是彼此的别名。我的问题是,为什么呢?

让我更具体一点:

当“子查询返回的列中的所有值的比较(此处,相等)为TRUE”时,

= ALL返回true,即每个外部查询行仅满足outer query = ALL (inner query)内部查询中的所有行都具有相同的值 value等于外部查询行值 因此,当内部查询中存在至少1 值且外部查询不同时,outer query <> ALL (inner query)必须返回true。 但只有当内部查询的行的 NONE 与相关的外部查询行匹配时,NOT IN才会返回true。

我有什么根本错误吗?

由于

1 个答案:

答案 0 :(得分:2)

  

因此,当内部查询中存在至少1 值且外部查询不同时,outer query <> ALL (inner query)必须返回true。

那不是真的。就像value = ALL (query)value等于query返回的每个值时返回true一样;当value <> ALL (query)value返回的每个值不同时,query会返回true。您显然认为value <> ALL (query)意味着NOT (value = ALL (query)),但事实并非如此。