您绝对想不到的 SQL 子查询错误
2011-08-27 11:19
267 查看
在 SQL Server 2000 中运行一个查询语句,语句如下:
以上代码看起来没问题,但是要说明的是 table2 中根本没有字段 a,字段 a 只在 table1 中存在,而上述语句却不会报错。它从 table2 中找不到字段 a,似乎就从 table1 中去找了,结果就显示出了 table1 中的所有记录。也就是说只要子查询中的字段名在
table2 或 table1 中存在,就不会报错。
以下代码即会报错:
select * from table1 where a in (select table2.a from table2)
以上代码看起来没问题,但是要说明的是 table2 中根本没有字段 a,字段 a 只在 table1 中存在,而上述语句却不会报错。它从 table2 中找不到字段 a,似乎就从 table1 中去找了,结果就显示出了 table1 中的所有记录。也就是说只要子查询中的字段名在
table2 或 table1 中存在,就不会报错。
以下代码即会报错:
select * from table1 where a in (select table2.a from table2)
相关文章推荐
- 如何解决SQL查询中的错误
- 服务层SQL查询时错误汇总
- 使用原生sql查询数据返回object类型list时,转换数据列出现转换类型错误(但写法正确)
- Java执行一个SQL查询未提交,遇到1205错误。
- sql查询报java.sql.SQLException: Column 'LC_ID' not found 的错误实际上是mysql在hibernate别名的问题
- 我犯过的sql错误介绍:外连接,多表查询相关。
- 使用PL/SQL进行模糊查询时显示错误ORA-00911:无效字符
- Linux中根据SQLCODE和SQLSTATEMENT查询sql错误的描述
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- mysql用sql查询时的错误
- 查询SQL错误日志扩展存储过程xp_readerrorlog
- SQL错误排查:子查询返回的值不止一个。子查询用作表达式时,这种情况是不允许的...
- SQL查询语句之UNION常见错误
- mysql大数量sql查询导致oom错误
- 有点奇怪!SQL中子查询存在语法错误居然能返回结果?!
- sql语句在mysql中查询没有问题,通过navicat premium直接从mysql数据库导入到SqlServer数据库中,查询语句出现错误
- java.sql.SQLException: 查询处理器用尽了内部资源,无法生成查询计划 错误分析解决
- 安装vsphere client时出现“错误2229 无法在SQL查询中加载表”等错误
- MySQL分组查询时出现错误SELECT list is not in GROUP BY ;this is incompatible with sql_mode=only_full_group_by
- "执行SQL语句时出现问题操作必须使用一个可更新的查询"错误的解决方法