我有一个想法,不知道这样行不行。
1、建一个空表C,表内字段只有需要查询的条件和二个标志字段(分别标志来自A表还是B表);
2、将A表的相关内容插入C表,然后填上相应的标志符A;
3、将B表的相关内容插入C表,然后填上相应的标志符B,对于表的已有的记录只需填上标志符B;
4、我们现在可以根据相应的标志符来求相应的运算。
我是一个数据库新手,也不知说的对不对,请各位多多指教。

解决方案 »

  1.   

     Union是表间集合合并的最佳方法,Union合并后的表成为一个新表,你可在新表进行查询,如:
      Select Distinct * from (
          Select * from a_message
          Union
          Select * from b_message )
      这样不是很一目了然吗?
      From子句后跟的须是数据表,当然这个数据表可以是表名,也可以是子查询产生的临时表。而从一个集合中选择数据的情况并不是一种实用的方式,它完全可以用SQL函数来替代。
      

  2.   

    交集就是两表的join 连接查询
    如:SELECT ... FROM a JOIN b ON a.id=b.id
    并集可用Union
    差集可用空值判断。
    如:SELECT ... FROM a LEFT JOIN b ON a.id=b.id WHERE isNull(b.id)=true 
      

  3.   

    我试过gxg8816的方法,可是觉得在数据量比较大的时候,效率低了一点,
      

  4.   

    在db2和oracle都可以支持在数据集上面查询,
    db2可以写作
    select (select ... ) from ....
    oracle可以写做
    select a.b ....from (select hello b ... from ...) a ...