互联网服务

优化器问题,大家一起看看

最近遇到一个很有特点的优化器问题,大家一起分析分析。代码如下:CREATE TABLE TEST.A (NO INTEGER, NAME VARCHAR(20) ); CREATE TABLE TEST.B (DEPT VARCHAR(20) ); INSERT INTO TEST.A VALUES ( 1 , 'SMITH'); INSERT INTO TEST.A VALUES ( 2 , 'JACK'); INSERT INTO TEST.B VALUE...显示全部
最近遇到一个很有特点的优化器问题,大家一起分析分析。

代码如下:
CREATE TABLE TEST.A
(NO INTEGER,
NAME VARCHAR(20)
);

CREATE TABLE TEST.B
(DEPT VARCHAR(20)
);

INSERT INTO TEST.A VALUES ( 1 , 'SMITH');
INSERT INTO TEST.A VALUES ( 2 , 'JACK');

INSERT INTO TEST.B VALUES ( 'HR');

SELECT NO , NAME FROM TEST.A WHERE NAME IN ( SELECT NAME FROM TEST.B );

正常情况下,这个语句应该报错,B表中没有NAME字段。
可测试后发现会把A中所有的记录都返回。

怀疑优化器出现问题,大家可以测试一下,然后一起分析是什么问题。收起
参与10

查看其它 8 个回答ninth的回答

ninthninth数据库管理员拓维信息系统股份有限公司
补充一下,这个在9、9.7上测试结果都是一样,更高的版本没有测试。
互联网服务 · 2013-07-31
浏览1174

回答者

ninth
数据库管理员拓维信息系统股份有限公司

ninth 最近回答过的问题

回答状态

  • 发布时间:2013-07-31
  • 关注会员:1 人
  • 回答浏览:1174
  • X社区推广