子查询分四类,标量子查询、列子查询、行子查询、表子查询,其中表子查询在使用any、some、all时会产生特有的报错,以下详细说明。
首先数据来源为两张表。
用下列语句进行表子查询,结果报错
为了探明报错原因,进行如下实验
第一步,将原语句中的【!=】改成【=】再次进行表子查询,结果正常运行
第二步,将原语句的表子查询改为列子查询(即去掉一个查询字段name),结果正常运行
第三步,为原语句中的子查询添加条件,结果依旧报错
第一步确定表子查询可以使用any,第二步确定该报错仅存在于表子查询,第三步确定是结构问题而非内容问题。
综上所述,认定是由于【!= any】这一语句不能用于表子查询(多字段匹配),同样方法检测出【!=some】【=all】都不能使用。