tb1字段为
id title content
tb2的字段为
cID cTitle cContent
反正这两个表没有一个字段是相同的.
现在我想用一句sql语句来取tb1与tb2的所有数据如何写sql语句?谢谢!
9 个解决方案
#1
select * from tb1
union all
select * from tb2
注意一下类型
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,col6
select * from tb2 --
union all
select *,NULL,NULL from tb1 --
tb1:id ,col1,col2
tb2:id,col3,col4,col5,col6
select * from tb2 --
union all
select *,NULL,NULL from tb1 --
#5
这里的*选出你要查找的字段名,注意上下的数据类型要一致,如果字段的数目不同,是不能用union的
#6
类型不一样的数据放在同一列上没什么意义,而且不同类型不可用union
#7
用union all连接,字段最多表放在union all的上面,
union all的下面列出另一个表的对应字段,缺少的字段用null代替
union all的下面列出另一个表的对应字段,缺少的字段用null代替
#8
哦。。。呵呵。。学习。。。
#9
当结果集不满足要求时可以用 select * from (select * from ....) 表1,将不符合要求的结果集进行处理后,装载到表1,然后做相应的处理。
结果:
第一列 第二列 第三列
1000 小张 男
1001 小李 女
1002 小红 女
1003 小明 男
1004 李好 女
1005 黄永 男
1006 张三 男
100 管理部 200
101 资材课 201
102 制造课 202
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
#1
select * from tb1
union all
select * from tb2
注意一下类型
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,col6
select * from tb2 --
union all
select *,NULL,NULL from tb1 --
tb1:id ,col1,col2
tb2:id,col3,col4,col5,col6
select * from tb2 --
union all
select *,NULL,NULL from tb1 --
#5
这里的*选出你要查找的字段名,注意上下的数据类型要一致,如果字段的数目不同,是不能用union的
#6
类型不一样的数据放在同一列上没什么意义,而且不同类型不可用union
#7
用union all连接,字段最多表放在union all的上面,
union all的下面列出另一个表的对应字段,缺少的字段用null代替
union all的下面列出另一个表的对应字段,缺少的字段用null代替
#8
哦。。。呵呵。。学习。。。
#9
当结果集不满足要求时可以用 select * from (select * from ....) 表1,将不符合要求的结果集进行处理后,装载到表1,然后做相应的处理。
结果:
第一列 第二列 第三列
1000 小张 男
1001 小李 女
1002 小红 女
1003 小明 男
1004 李好 女
1005 黄永 男
1006 张三 男
100 管理部 200
101 资材课 201
102 制造课 202
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