比如我现在有两个表tb1,tb2.
tb1字段为
id  title  content
tb2的字段为
cID cTitle  cContent反正这两个表没有一个字段是相同的.现在我想用一句sql语句来取tb1与tb2的所有数据如何写sql语句?谢谢!

解决方案 »

  1.   

    select * from tb1
    union all
     select * from tb2
    注意一下类型 
      

  2.   


    select id,title,content from tb1
    union all
    select cid,ctitle,ccontent from tb2
      

  3.   

    不行.提示'包含 UNION 运算符的 SQL 语句中的所有查询都必须在目标列表中具有相同数目的表达式。'应该是两个表的结果都是不一样的原因.我现在想实现的是两个表结构不一样,然后都可以取完.谢谢.
      

  4.   

    比如说:
    tb1:id ,col1,col2
    tb2:id,col3,col4,col5,col6select * from tb2 --
    union all
    select *,NULL,NULL from tb1 --
      

  5.   


    这里的*选出你要查找的字段名,注意上下的数据类型要一致,如果字段的数目不同,是不能用union的
      

  6.   

    类型不一样的数据放在同一列上没什么意义,而且不同类型不可用union
      

  7.   

    用union all连接,字段最多表放在union all的上面,
    union all的下面列出另一个表的对应字段,缺少的字段用null代替
      

  8.   

    当结果集不满足要求时可以用 select * from (select * from ....) 表1,将不符合要求的结果集进行处理后,装载到表1,然后做相应的处理。
     select * from(
    select cast(工号 as nvarchar(20)) as 第一列 ,cast(姓名 as nvarchar(20)) as 第二列,cast(性别 as nvarchar(20) )as 第三列 from 人事表
    ) aa
    union all
    select * from (
    select cast(部门代码 as nvarchar(20))as 第一列,cast(部门名称 as nvarchar(20))as 第二列,cast(记薪标准代码 as nvarchar(20)) as 第三列 from 部门表
    ) bb结果:
    第一列 第二列 第三列
    1000 小张 男
    1001 小李 女
    1002 小红 女
    1003 小明 男
    1004 李好 女
    1005 黄永 男
    1006 张三 男
    100 管理部 200
    101 资材课 201
    102 制造课 202