查询a,b,c三个表的一些字段 可是b表需要UNION ALL b的历史表 可以实现吗?怎么写

解决方案 »

  1.   

    这样:select a.* , c.* , t.* from a , c , 
    (select * from b union all select * from b的那些历史表,如果有多个逐一union all) t
    where a.关键字 = b.关键字 and a.关键字 = t.关键字
      

  2.   

    如果当前表和历史表是一个库  可以直接查询a,b联合历史b,c如果当前表和历史表不是一个库--当前库K 表:a,b,c  历史库L 表:his_b
    select a.col1,b.col2,c.col3
    from a,
    (select col2 from b
    union all
    select col2 from L.his_b) b,c
    where ...
      

  3.   

    先把b表及历史表进行union all,把形成的表做为一个临时表与a, c进行连接操作。
    连接操作正常进行就可以了。