SQL怎样合并显示两个没有关联的表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL怎样合并显示两个没有关联的表相关的知识,希望对你有一定的参考价值。

两个表结构不同,也没有关联字段,要求把数据合到一块,然后按时间顺序显示。
就比如两个完全独立的文章表,要把他们联合到一块显示。

1、首先打开SQL  SERVER管理工具,用select语句查询一下当前表的记录。

2、接下来需要通过row_number对表进行排序,将排序好的表存到临时表里面。

3、接下来编写update语句,这里用到了表关联,如下图所示,通过关联将临时表的排序字段重新赋值给表的排序字段。

4、然后记得要最后要删除临时表,如下图所示,如果不删除临时表的话下次会报错的。

5、执行SQL语句以后,你会发现记录中的PX字段值并没发生什么变化,如下图所示,这是由于排序方式的问题。

6、接下来在row_number中通过PX字段的降序方式进行排序,如下图所示,执行以后,你会发现PX字段的值发生了变化,即代表SQL合并显示两个没有关联的表成功。

参考技术A 如果是纵向合并使用union all
加入有两个表a和b
a表结构有两个字段date1,a2
b表有一个字段date1
select date1,a2 from (select date1,a2 from a
union all
select date1,null from b)
order by date1;
注意union all里面两个表字段数量必须一致,缺少的字段要用null补齐

排序必须在子查询外进行
参考技术B where [a表的字段]=[b表的字段].如果没有办法具备这个条件,建议你还是重新构造数据逻辑结构吧.
可以实现where的情况下用排序条件设置排序. order by +升序或降序
参考技术C 使用union 或union all
如select * from a union all select * from b然后再嵌套一层查询对时间排序 order by追问

不行啊,提示“运算符合并的所有查询必须在其目标列表中有相同数目的表达式。”
也就还是要有关联字段

追答

写出字段,对于意义差不多命名相同别名。举例:A,B两表结构如下
A(Q1,Q2,DATE1) B(S1,S2,S3,DATE2)
语句如下
SELECT * FROM(
SELECT Q1 R1,Q2 R2,NULL R3,DATE1 R4 FROM A
union all
SELECT S1 R1,S2 R2,S3 R3,DATE2 R4 FROM B)
ORDER BY R4

追问

非常感谢,我试验了,但是需要稍微修改下
SELECT Q1 R1,Q2 R2,NULL R3,DATE1 R4 FROM A
union all
SELECT S1 R1,S2 R2,S3 R3,DATE2 R4 FROM B
ORDER BY R4
直接在后面加ORDER BY就可以,否则会报错

本回答被提问者采纳

ORACLE中如果两个字段如果能关联的语句怎么写

通过两张表关联,where条件用等值连接就行了,这是最基本的sql关联语句呢,亲,举例:selecta.col1,a.col2,b.col1,b.col2fromtable1a,table2bwherea.colname=b.colname 参考技术A select 语句1
UNION ALL
select 语句2
这样来连接各个查询的结果

以上是关于SQL怎样合并显示两个没有关联的表的主要内容,如果未能解决你的问题,请参考以下文章

sql语句:将两个查询结果关联显示

怎样用sql语句实现将两个没有关系的表拼接成一张表???

SQL怎么把两个表的数据合在一起查询!?

sql并排合并表,没有共同点

sql中有关联的两个表,怎么查出一个表中没有对应到另一个表的数据?

合并两个没有公共字段的表