sql 两个表 查询

来源:百度知道 编辑:UC知道 时间:2024/07/02 10:29:15
有两表a,b两表之间没有任何关系或联系,并且列和内容均不相同。
表a
aid 列a1 列a2
1 a11 a12
2 a21 a22

表b
bid 列b1 列b2
1 b11 b12
2 b21 b22

怎么用一条SQL命令把这两个表的内容全显示出来
结果:
1 a11 a12
2 a21 a22
1 b11 b12
2 b21 b22
请详细回答,分数还可再加!
根据泠月无声 和chenjin99提供的方法,查询是没问题了,但能不能让查询结果添加到一张新表里面,或是按某个条件查询?比如查询出结尾为22的数据。显示a22 b22(一列显示)。

多谢chenjin99的回答,我想再问两个问题,根据添加到新表当中的方法理论上可行,但我执行的时候总是提示“超时时间已到,……”,怎么才能解决?另外查询出a22,b22后,但它们的ID是同样的也就是说没有唯一标示了,我能不能查询的时候添加一个自增列来做为唯一标示,应该怎么弄?怎么定义列为自增类型?

是单纯的查询时候定义自增,就是新建一个自增列,就好像select '' as c1,并不是建新表的时候。

分数还可再加!

用Union没错!
Select aid, a1, a2 from [表a]
union all
Select bid, b1, b2 from [表b]

使用Union的关键点:
一、查询结果是一个数据集,它的字段名以第1个Select后面的字段列表为准,后面的Select的字段列表需要与第1个的对齐(字段个数和数据类型相同,名称无所谓)

例如如下这句,就是增加一条记录。
Select aid, a1, a2 from [表a]
union all
Select bid, b1, b2 from [表b]
Union
select 0, '111', '222'

如下会出错,因为第一个Select中的字段 111 为整型,会造成[表b]的b1字段内容强行向整型转换,转换会失败:将 varchar 值 'b11' 转换为数据类型为 int 的列时发生语法错误。
select 0, 111, '222'
Union
Select bid, b1, b2 from [表b]

二、union all中的“All”不加的话,是自动剔除重复的记录(重复的记录只保留1条),加上“All”则会保留所有数据。
---------------------------------
按问题补充:1)让查询结果添加到一张新表里面;2)按某个条件查询,比如查询出结尾为22的数据。显示a22 b22:

只需要增加几个子句就可以了:

1)将查询结果放到新表:
Select aid, a1, a2 into [新表名] from [表a]
union all
Select bid, b1, b2 from [表b]
--关键点:SELECT INTO 必须是包含 UNION 运算符的 SQL 语句中的第一个查询。

2)增加查询条件:
Sel