我在优化一个查询,但是原来的这个查询非常复杂,基本结构是这样的(不知道能不能描述清楚)select distinct 若干列 from 视图A left join 视图B on a.VendorNO=b.VendorNO";而视图A是这样的:select 若干列 from 视图A_1
left join 表a on 连接条件
left join 表b on 连接条件
left join 表c 连接条件
inner join (select 若干列 from 视图A_1
left join 表a on 连接条件) e
on 连接条件视图B:select 若干列 from (select 若干列 from 视图A group by VendorNO ) a
left join (若干列 from 视图A left join 视图A_1_1 on 连接条件 where 筛选条件 group by **) b on 连接条件
left join (select 若干列 from 表d group by ** ) c on 连接条件视图A_1是由A_1_1和其他视图构成的。现在的问题是,我把视图A_1和视图B建了临时表来保存每次的结果,然后视图A改为从临时表中取数据而不是从视图。并且中间的结果都对,为什么最后确比原来的查询方式少记录数。请问应该从哪个方面入手来确定原因?谢谢
left join 表a on 连接条件
left join 表b on 连接条件
left join 表c 连接条件
inner join (select 若干列 from 视图A_1
left join 表a on 连接条件) e
on 连接条件视图B:select 若干列 from (select 若干列 from 视图A group by VendorNO ) a
left join (若干列 from 视图A left join 视图A_1_1 on 连接条件 where 筛选条件 group by **) b on 连接条件
left join (select 若干列 from 表d group by ** ) c on 连接条件视图A_1是由A_1_1和其他视图构成的。现在的问题是,我把视图A_1和视图B建了临时表来保存每次的结果,然后视图A改为从临时表中取数据而不是从视图。并且中间的结果都对,为什么最后确比原来的查询方式少记录数。请问应该从哪个方面入手来确定原因?谢谢
但是为什么我 insert into 临时表 select * from 视图
后,视图和临时表的结果不一样呢?表和视图的结构是完全一样的。说聚合或set操作取消了空值,应该怎么才能把视图中的内容完全一样的复制到临时表里呢?