select...union all ...where..
sql中.假设有两个表tbl1跟tbl2,表结构完全相同,表里面有一个datetime类型的字段t,我想把两张表同一时间段的行全取出来,可以这样写的:select   *   from   tbl1   where   t> datetime1   and   t <datetime2   union   all   select   *   from   tbl2   where   t> datetime1   and   t <datetime2,      这里的where条件对于两个表都是一样的,但在写程序时,这个条件是在后期才加上去的,即先是有select   *   from   tbl1   union   all   select   *   from   tbl2,   再加上where   t> datetime1   and   t <datetime2,   这时,   select   *   from   tbl1   union   all   select   *   from   tbl2   where   t> datetime1   and   t <datetime2   在sql中执行时where条件只会用于tbl2,而不用于tbl1(在sql测试过了,在access中可能同时用于两个表).   我也想过这样写,   select   *   from   tbl1,   tbl2      再加上   where   t> datetime1   and   t <datetime2,   但这时会报错说t不明确.   请问,如何实现这种效果呢?
------解决方案----------------------试试 
 select *  
 from( 
       select * from tbl1  
       union all  
       select * from tbl2  
 ) _x 
 where t> datetime1 and t <datetime2