LZ指的少量 是多少? 1000? 如果A、B表都算1000的数据 full join连接 堆起来就是1000*1000的数据 还会怎么快呢?
[/Quote]
单独查 AB 只有10条左右的数据了。对这个语法不是很了解,A 和 B 也不是我写的,只是为了方便想综合一下,不知道是不是嵌套太多,有歧义什么的,如果仅仅是10*10,应该没什么问题,而full join 换成left join,可以正确执行。我想达到的效果是是A表中对应地区的num加上B表中对应地区的num,不知道有什么好的办法。总共的地区一共有11个,只是A B 表的地区都是11的子集,不一定刚好有11地区都有。
select A.地区,A.num1,B.num2,(A.num1+B.num2) from (select 地区,count(*) as num1 from (select case when IP地址 between 184025089 and 184549375 then
省略。。。。。
else
'其他'
end 地区 from
(select d.serialnumber as 序列号,
省略。。。。'yyyy-mm-dd hh24:mi:ss') as 最后激活时间
from device d
left join devicepreconfig dp on d.serialnumber = dp.serial_number
where (dp.rgtype = 0 or dp.rgtype = 1) and d.deleted = 0
) tb ) group by 地区) A
left join
(select 地区,count(*) as num1 from (select case when IP地址 between 184025123 and 1845493455 then
省略。。。。。
else
'其他'
end 地区 from
(select d.serialnumber as 序列号,
省略。。。。'yyyy-mm-dd hh24:mi:ss') as 最后激活时间
from device d
left join devicepreconfig dp on d.serialnumber = dp.serial_number
where (dp.rgtype = 0 or dp.rgtype = 1) and d.deleted = 0
非常感谢。我觉得也是很有这个可能,只是我查的表是这样子的 (select *........) A full join (select *......) B 查出来的A 和 B 都是很少的数据量了。只是得到 A 和 B 的时候查询的数据量比较大。这个执行的时候 是先 查出来 A 和 B 然后 full join 匹配的话,按照我的理解不会很慢。